在DELPHI中*.wav 文件怎么加到资源文件中


======================================================
注:本文源代码点此下载
======================================================

比较“流行”的说法是:“16位的delphi1.0和32位的delphi2.0、3.0都提供了资源

编译工具,其中delphi1.0的资源编译器叫brcc.exe,delphi2.0的资源编译器

叫brcc32.exe用来编译32位资源,所有资源编译器都只提供了命令行版本,

没有提供windows版本。制作一个资源一般要通过以下几个步骤:

1)编写.rc文件

..rc文件是资源的源文件,编译器也就编译这个文件,生成.res的

资源文件

首先在我们的项目子目录中建立一个纯文本文件,起名叫

sound.rc,文件中

有一行,内容为:

sound1wavsound.wav

其中sound.wav为一个windows下普通的声音文件

2)编译它

在dos的提示符下打brccsound.rc硬盘哗啦啦转一会儿后,就编

译完了

3)制作程序

这也是最复杂,最灵活的一步,首先启动windows,再启动delphi,

并且将项目

中的文件保存到我们的项目中的子目录中。在unit1.pas中找这么

一行

{$r*.dfm}

把我们的资源文件就声明在后面

{$rsound.res}

然后,在form1中声明两个全局变量

ptrsound:pchar;

hres:thandle;{handletotheloadedresource

if0indicatesnothingplaying}

再在form1的create事件中写下如下代码

proceduretform1.formcreate(sender:tobject);

varhresinfo:thandle;

begin

hresinfo:=findresource(hinstance,'sound1','wave');

hres:=loadresource(hinstance,hresinfo);

ifhres>32then{itsagoodload}

begin{locktheresource}

ptrsound:=lockresource(hres);

end;

end;

然后在form1中放一个按钮button1,写如下代码:

proceduretform1.button1click(sender:tobject);

begin

sndplaysound(ptrsound,snd_asyncorsnd_memory);

end;

这时候就可以运行了。”

是真的吗?

其实,资源文件的文件名就根本不能和wave文件的一样,否则,呵呵,扬声器就要beep啦,不信你试试看。

下面笔者写出可以运行源代码的步骤(当然您的资源文件不能有错的):

1)编写.rc文件

..rc文件是资源的源文件,编译器也就编译这个文件,生成.res的资源文件首先在我们的项目子目录中建立一个纯文本文件,起名叫

pad.rc,在文件中写一行,内容为://注意!资源文件名不可以和wave文件名一样的!

sound1wavsound.wav

其中sound.wav为一个windows下普通的声音文件

2)编译它

在dos的提示符下打brcc32pad.rc一会儿后,就编译完了//现在已是brcc32啦,不知有的文章怎么还有brcc??

3)制作程序

在windows下启动delphi,新建一个项目,将其中的文件保存到我们的项目中的子目录中。在unit1.pas中找到

{$r*.dfm}

把我们的资源文件就声明在后面

{$rpad.res}

然后,在form1中声明两个全局变量

ptrsound:pchar;

hres:thandle;{handletotheloadedresource

if0indicatesnothingplaying}

再在form1的create事件中写下如下代码

proceduretform1.formcreate(sender:tobject);

varhresinfo:thandle;

begin

hresinfo:=findresource(hinstance,'sound1','wave');

hres:=loadresource(hinstance,hresinfo);

ifhres>32then{itsagoodload}

begin{locktheresource}

ptrsound:=lockresource(hres);

end;

end;

然后在form1中放一个按钮button1,写如下代码:

proceduretform1.button1click(sender:tobject);

begin

sndplaysound(ptrsound,snd_asyncorsnd_memory);

end;

点击编译,运行,再按button1,可以听到扬声器中发出wave文件内容。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值