缘由:
最近在用VC6.0开发一个简单的扫雷程序;当中需要播放一段音乐,我就在网上找相应的
资料,发现了好多帖子,介绍最多的是这个方法。
把声音文件加入到资源中,然后从资源中播放声音。Visual C++支持WAVE型资源,用户在资源视图中单击鼠标右键并选择Import命令,然后在文件选择对话框中选择The Microsoft Sound.wav文件,则该文件就会被加入到WAVE资源中。假定声音资源的ID为IDR_STARTWIN,则下面的调用同样会输出启动声音:
PlaySound((LPCTSTR)IDR_STARTWIN, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
那就这样干喽,我在程序里按照教程添加了一些代码(对了一定加上头文件并加紧相应的库,
#include <mmsystem.h>
#pragma comment( lib, "Winmm.lib" )
)
PlaySound(IDR_WAVE1, AfxGetInstanceHandle(), SND_RESOURCE |SND_ASYNC);
可是没用啊;系统老在提示PlaySound是未定义的。为此我还专门翻了加进来的.h文件,WTF,明明这个函数就在那里凭什么说未定义。
最后让舍友帮看,原来是要在调用PlaySound时传递的第一个参数强制转换成LPCTSTR,我靠这个时候看人家教程教程已经稳稳当当写好要强制转换的。擦!
其实当时最搞不清的是系统老提示未定义,最后想了想,可能系统认为我调用的函数真的未定义。归根到底,还是经验不足
时间: 2024-10-12 17:31:46