Visual Studios忽略了我要播放的文件。使用此代码,它返回false,因为它不加载文件。
result = LoadWaveFile("../Engine/data/sound01.wav", &m_secondaryBuffer1);
if (!result)
{
return false;
}
答案 0 :(得分:6)
不要在当前工作目录上使用相对路径。构造一个绝对路径,将GetModuleFileName
与原始相对路径相结合。当前工作目录不可靠,不应使用。
GetOpenFileName
)可以将当前目录更改为副作用。第三,应用程序使用的某些第三方库可以更改当前目录。第四,当前目录在进程中是唯一的,在线程之间共享,因此即使你在依赖它之前调用SetCurrentDirectory
,其他一些线程也可以在同一时间更改它。
在小型演示应用案例中,所有这些原因几乎都不存在,您甚至可以通过设置Project>来防止第一个原因。属性>配置属性>调试>工作目录到$(OutDir),如果你要从调试器启动应用程序。这是一个非常具体的用例,所以我会选择不依赖于当前目录的易失性的更强大的解决方案。