我创建了一个在Windows Phone 8上运行的项目,该项目使用Windows Phone SDK提供的带有XAML的Direct3D模板。我还合并了DirectXTK并在CubeRenderer.h中声明了std::unique_ptr<DirectX::SpriteBatch> m_SB;

当我尝试在函数CreateDeviceResources中分配它时:

m_SB.reset(new SpriteBatch(m_d3dContext.Get()));


它给出了错误:未知模块中发生了类型为'System.AccessViolationException'的未处理的异常。

我不知道为什么会这样。如果我使用Direct3D(本机)模板创建项目,则此方法非常有效。

任何帮助,将不胜感激。

最佳答案

您必须将代码放入CreateWindowSizeDependentResources函数中,然后它应该可以正常工作。

Source

关于c++ - 将SpriteBatch与Direct3D和XAML一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14933266/

10-11 11:35