游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2321|回复: 7

急!问题

[复制链接]

31

主题

64

帖子

64

积分

注册会员

Rank: 2

积分
64
发表于 2005-8-23 15:49:00 | 显示全部楼层 |阅读模式
1.我在对话框程序里添加控件,却出现Cannot add new member的警告,为什么不能添加新的成员了?
2.我用Picture控件设置了一副图片,它却把其他控件遮住了,怎样避免这种情况?

31

主题

64

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2005-8-23 16:35:00 | 显示全部楼层

Re:急!问题

31

主题

64

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2005-8-23 17:52:00 | 显示全部楼层

Re:急!问题

还有,我看书上播放音乐的MCIWndCreate,MCIWndPlay,sndPlaySound等函数为什么不能使用,说没有申报,怎么回事?

18

主题

279

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
QQ
发表于 2005-8-23 18:26:00 | 显示全部楼层

Re:急!问题

A 1:(猜的)检查一下资源文件,VC++常会因为一些文件的存储问题(它自己搞糟的)而导致错误;
A 2:改变各个控件的TabOrder属性,你在设计窗口看到在上层的控件运行时显示在下层;
A 3:包含[B]Vfw.h[/B],连接[B]Vfw32.lib[/B](参看MSDN)。

31

主题

64

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2005-8-23 21:03:00 | 显示全部楼层

Re:急!问题

第三个问题我包含Vfw.h,连接Vfw32.lib,还是不行,可能写错了,你能不能写给我看看?
还有用MCIWndPlay函数播放音乐的例子有吗?能不能给个?

18

主题

279

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
QQ
发表于 2005-8-24 11:11:00 | 显示全部楼层

Re:急!问题

要使用sndPlaySound还需要:
头文件:<Mmsystem.h>(已被包含入<Windows.h>,但可能会被预编译宏排除,明确包含一次吧);
连接库:Winmm.lib

直接用这些东西播放音乐即费事又难于移植(谁知道下一个版本的Windows还有没有这些东西),你可以试着用一下OpenAL[www.openal.org],非常方便的。
而且,这里有不少关于它的使用教程

31

主题

64

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2005-8-24 11:33:00 | 显示全部楼层

Re:急!问题

怎么用OpenAL?我才学,没见过这东西

18

主题

279

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
QQ
发表于 2005-8-25 16:29:00 | 显示全部楼层

Re:急!问题

[B]第一步:从OpenAL的官方网站下载其SDK[/B]
当前的发行版1.0
最新的测试版1.1
其中有OpenAL的详细使用方法和示列程序。

[B]第二步:安装SDK[/B]
将include目录里的头文件(al*.h)复制到开发工具的默认头文件夹中
将bin目录里的连接库文件(*.lib)复制到开发工具的默认库文件夹中
将bin目录里的运行库文件(*.dll)复制到系统文件夹中
(某些机子可能还需要运行一下bin中的子目录里的那个程序,名字我忘了)

[B]第三步:添加到项目中[/B]
在程序中包含<al.h><alc.h><alut.h>
在开发工具中添加那几个连接库文件

[B]第四步:简单的使用方法[/B]
程序启动的时候:
alutInit(0,NULL);
程序结束的时候:
alutExit();
播放WAV文件:
ALuint source = 0;  //一个音源
ALuint buffer = 0;  //一段音频
ALuint size = 0;     //音频长度
ALenum format = 0;  //单声道还是立体声
ALsizei frequency = 0;  //频响(如:44100Hz)
ALboolean loop = AL_FALSE;
char *sample = 0; //音频内容
//读入test.wav
alutLoadWAVFile("test.wav",&format, (void**) &sample, &size, &frequency, &loop);
//按如下顺序建立音源
alGenSource(1, &source);
alGenBuffer(1, &buffer);
alBufferData(buffer, format, sample, size, frequency);
alSourcei(source, AL_BUFFER, buffer);
//数据已经复制入音频缓存,可以释放占用的系统内存
alutUnloadWAV(format, sample, size, frequency);
//开始播放
alSourcePlay(source);
alSourcei(source, AL_LOOPING, loop);  //设置循环播放

[B]第五步:深入[/B]
翻译了的指南
OpenAL可以轻松的实现3D音效哦 [em3]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-27 13:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表