我创建了一个在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/