gpt4 book ai didi

c++ - Visual Studios 忽略文件

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:50 24 4
gpt4 key购买 nike

Visual Studios 忽略了我正在尝试播放的文件。使用此代码,它会返回 false,因为它不会加载文件。

    result = LoadWaveFile("../Engine/data/sound01.wav", &m_secondaryBuffer1);
if (!result)
{
return false;
}

最佳答案

不要在当前工作目录上使用相对路径。构造一个绝对路径,结合 GetModuleFileName和你原来的相对路径。当前工作目录不可靠,不应使用。

编辑:当前目录有什么问题?简而言之,它是不稳定的。首先,该过程可能不会在预期的目录中启动(就像您的情况一样)。用户可以创建应用程序的快捷方式并在那里指定任何起始目录。其次,Windows API 中有一些函数(特别是 GetOpenFileName)可以作为副作用更改当前目录。第三,应用程序使用的某些第三方库可以更改当前目录。第四,当前目录在进程中是唯一的,在线程之间共享,所以即使你在依赖它之前调用SetCurrentDirectory,其他线程也可以同时改变它。

在小型演示应用程序案例中,所有这些原因几乎都不存在,您甚至可以通过将项目 > 属性 > 配置属性 > 调试 > 工作目录设置为 $(OutDir) 来防止第一个原因,如果你要去从调试器启动应用程序。不过,这是一个非常具体的用例,所以我会选择不依赖于当前目录的易变性的更强大的解决方案。

关于c++ - Visual Studios 忽略文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20777503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com