gpt4 book ai didi

c++ - file_not_found 错误 - 带有 Visual Studio 2015 的 directx 工具包

转载 作者:行者123 更新时间:2023-11-30 05:20:49 27 4
gpt4 key购买 nike

我正在尝试迁移我几年前编写的程序(科学计算)以更新它并添加新功能。

我的操作系统是 Windows 10。我使用的是 Visual Studio Community 2015。将我的 Visual 2012 代码迁移到它没有特别的问题。我代码的图形部分(绘图渲染)基于 Direct3D 9。我知道它已完全弃用,我想迁移到 Direct3D 11。

在对该主题进行一些调查后,我觉得使用 DirectX 工具包“directxtk_desktop_2015”很方便。为了熟悉它,我决定阅读“GitHub”教程,名为:The-basic-game-loop、Adding the DirectX Toolkit 等 https://github.com/Microsoft/DirectXTK/wiki/The-basic-game-loop

我卡在了教程的第 3 步,它正在尝试下载纹理以将其显示在屏幕上:

DX::ThrowIfFailed(
CreateWICTextureFromFile(m_d3dDevice.Get(), L"cat.png", nullptr,
m_texture.ReleaseAndGetAddressOf()));

它抛出一个 file_not_found 错误。令人费解的是,在Visual Studio右侧的“解决方案”窗口的程序的“资源”中可以看到cat.png文件。

是什么原因造成的?

最佳答案

该路径是一个相对路径,假定 cat.png 在程序运行时位于当前工作目录 中。通常在使用 Visual Studio IDE 运行的经典 Win32 桌面应用程序中,项目文件夹是 CWD,但 EXE 本身位于配置文件夹(调试、发布等)下。

如果您从命令行或使用其他方法运行 EXE,则当前工作目录很可能就是该配置文件夹。

如果您已将 cat.png 保存到项目文件夹下的 Assets 文件夹(实际目录,而不仅仅是过滤器),那么您需要使用:

DX::ThrowIfFailed(
CreateWICTextureFromFile(m_d3dDevice.Get(), L".\\Assets\\cat.png", nullptr,
m_texture.ReleaseAndGetAddressOf()));

For Universal Windows Platform (UWP) apps rather than Win32 desktop apps, the current working directory at the time you run the program is the root of the AppX package. The AppX package is created by copying all the various content files and the generated EXE into a folder, such as Debug\project name\AppX. If the content file is outside the 'project cone' folder, then it will be in the root directory of the AppX. If it's in a subdirectory, then that will get replicated in the AppX. So for example, if you have a UWP and have cat.png in the Assets folder of a UWP, then in the AppX it will end up at .\Assets\cat.png.

关于c++ - file_not_found 错误 - 带有 Visual Studio 2015 的 directx 工具包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40508626/

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