我正在尝试从 DLL 中播放音乐。但是,每当我尝试这样做时,PlaySound 函数都不会执行任何操作。
我已经尝试在资源中包含 wav 文件,并且我知道代码在我将 DLLMain 编译为普通主程序时可以正常工作,它可以毫无问题地播放音乐。DLLMain 代码如下所示:
if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
PlaySoundA("C:\\Sound.wav", NULL, SND_FILENAME);
}
return TRUE;
奇怪的是,我可以看到这首歌在程序的内存中;它的内存使用量上升到播放歌曲时应该做的事情,但它没有声音。此外,编译为 exe 的相同代码也可以完美运行;我无法弄清楚出了什么问题。
更新:事实证明这是因为你不能在 DLLMain 中执行很多事情 - 有什么办法可以解决这个问题吗?
你只能做的事情数量有限的DllMain
,而且我敢肯定,PlaySound
是不是其中之一。
相反,尝试从 DLL 中的另一个函数调用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句