C ++将wav文件放入dll

Posted

技术标签:

【中文标题】C ++将wav文件放入dll【英文标题】:C++ Put wav file into dll 【发布时间】:2011-03-06 00:37:41 【问题描述】:

我想在 dll 中包含一个 wav 文件并稍后播放。 怎么做?我知道如何播放同一目录中的文件。但我想在我的 dll 中包含大约 50 个 wav 文件。

【问题讨论】:

无论您选择哪种方式,我都强烈反对在您的 dll 中包含 50 个 wav 文件(因为大小):P 【参考方案1】:

您将此类文件作为资源嵌入。

你需要一个资源文件,例如

MY_WAV WAVE "file.wav"

然后直接播放,使用 PlaySound。

PlaySound("MY_WAV", hInstance, SND_RESOURCE);

hInstance 应该是传递给 DllMain 的句柄

【讨论】:

关闭,但需要工作。资源声明必须使用 WAVE,而不是 RCDATA。第一个参数应该是 MAKEINTRESOURCE(MY_WAV)。 将 RCDATA 更​​正为 WAVE。字符串标识符工作正常,不需要 MAKEINTRESOURCE 参考 msdn.microsoft.com/en-us/library/ms903664.aspx 我想说this 是一个更好的资源。您的特定于 Windows CE。此特定功能的行为似乎没有什么不同,但这并不总是得到保证。无论如何,为准确性 +1,虽然我也建议指定 SND_ASYNC 标志。【参考方案2】:

我建议使用 Bass http://www.un4seen.com/ 和 mp3 而不是 wav

如果你想将它包含在你的 dll 中(从内存中加载 bass.dll),我可以告诉你怎么做(只是不在这里)

在你的 PE 中包含 wav/mp3 文件(无论是 exe/dll)使用资源

【讨论】:

以上是关于C ++将wav文件放入dll的主要内容,如果未能解决你的问题,请参考以下文章

如何将dll文件移动到C:\WINDOWS\assembly文件夹

按键精灵缺少WINIO,DLL怎么办,老师

我的电脑打开WPS软件时提示电脑丢失QTcore4.dll文件怎么解决

怎么将dll的文件复制替换到C:\windows\system32 win7

c - 将数据写入 wav 文件

用于 .wav 文件编码的 C/C++ 库