想把一个wav声音小文件导入到程序内部该怎么办?(50分)

  • 主题发起人 主题发起人 小龙飞飞
  • 开始时间 开始时间

小龙飞飞

Unregistered / Unconfirmed
GUEST, unregistred user!
放在外面总是担心万一丢了怎么办,
所以想把它放在外面,
哪位高手指点一下,
最好详细一些,
本人新手
 
加到资源文件里,最后编译到exe里就可以了
 
是啊
可是怎么编辑资源文件啊
能简单提示一下嘛
谢谢
 
举一个例子,将1.wav导入到程序内部
1。生成一个foo.rc的文件,这是一个文本文件,内容为下面这句
WAVE1 WAVE PRELOAD FIXED PURE "1.WAV"
说明:资源名,资源类型,关键字(PRELOAD FIXED PURE 可不要),文件名
2。编译:
brcc32 foo.rc
形成foo.res
3.写代码
...
implementation

{$R *.DFM}
{$R foo.res}
procedure Tform1.button1click(sender:Tobject);
var rhmynoise:THandle;
pmynoise:Pointer;
hmynoise:Thandle;
begin

rhmynoise:=findresource(HInstance,'WAVE1','WAVE');//查找资源
hmynoise:=loadresource(HInstance,rhmynoise);//获取资源句柄
pmynoise:=lockresource(hmynoise););//获取资源数据句柄
sndplaysound(pmynoise,SND_SYNC or SND_MEMORY);//播放
freeresource(hmynoise);//释放资源
end;

 
to wind_cloudy:
大体步骤我明白了,
但是调用资源文件那部分,
我照着你的原码考过去,
说是变量未声明
begin

rhmynoise:=findresource(HInstance,'WAVE1','WAVE');//查找资源
hmynoise:=loadresource(HInstance,rhmynoise);//获取资源句柄
pmynoise:=lockresource(hmynoise););//获取资源数据句柄
sndplaysound(pmynoise,SND_SYNC or SND_MEMORY);//播放
freeresource(hmynoise);//释放资源
end;
 
示范如何将游标, 声音, 图形, 字串等资料放在同一个 .RES 档案中,
并合并在 .EXE 执行档中.
http://www.vclxx.com/DELPHI/D32SAMPL/BIG_RES.ZIP
 
var rhmynoise:THandle;
pmynoise:Pointer;
hmynoise:Thandle;
这几句没拷吧?
 
另外在use中加上mmSYSTEM,//为了能够播放
 
还有一定要有{$R foo.res}这一句
 
to XingLong:
那个网站我上不去,
你能不能把那个文件发给我呀,
Little_Dragon@263.net
谢谢先。
to Wind_cloudy:
原来没有加上mmSystem总是说不认识那个播放的函数,
现在加上了,
却总是提示
Couldnot create output file.
不知为什么。
能不能麻烦做一个Demo发给我呀,

//bow
Little_dragon@263.net
 
我已经发了,请查收
 
谢谢大家
问题已经解决
本人积分不多,
所以可用分数不是很多,
请大家笑纳
 
后退
顶部