首页 > 解决方案 > DirectX:无法从 CMO 渲染模型

问题描述

我正在尝试使用 DirectX 绘制模型(遵循本教程:https ://github.com/Microsoft/DirectXTK/wiki/Rendering-a-model?fbclid=IwAR3A0mw9rzjJHrN3mwgSb9a6oKqNgiDiAnnfkVLIIQVca9Og6cvfvscuVfE )。

我已经将我的 model.cmo 文件与Add existing item和以下行添加到Game::CreateDevice()

m_model = Model::CreateFromCMO(m_d3dDevice.Get(), L"model.cmo", *m_fxFactory);

由于上述行出现异常,我无法构建和运行我的项目

directX_project.exe 中 0x747318A2 处的未处理异常:Microsoft C++ 异常:内存位置 0x00B3F738 处的 std::exception。发生了

我将不胜感激有关如何解决或调试该问题的任何提示

标签: directxdirectx-11directxtk

解决方案


您应该按照此处的说明为调试器启用“C++ 异常中断”,std::exception以便您可以准确查看触发异常的代码。

请注意,最新版本的DirectX 工具包为可能是“找不到文件”或类似问题的那些类型的故障提供了更多调试输出。

DirectX 工具包还为其 C++ 异常实现了what方法,因此您可以使用此代码获取更多详细信息:

try
{
    m_model = Model::CreateFromCMO(m_d3dDevice.Get(), L"model.cmo", *m_fxFactory);
}
catch (std::exception& ex)
{
    std::cout << ex.what();
    // Do some error handling here or call throw to re-throw it
}

推荐阅读