Yan*_*ann 7 c++ directx access-violation
所以我有一个我生命中见过的最奇怪的虫子.我已经购买了一本DirectX 11书,附带了一些[示例代码]:http://www.d3dcoder.net/d3d11.htm 我很确定在某些时候我设法编译并运行每个示例应用程序,但现在,我在运行时出现"访问冲突写入位置0xCCCCCCCC"错误.
现在,这发生在以下一行:
ShadowsApp::ShadowsApp(HINSTANCE hInstance) : D3DApp(hInstance)
{
mMainWndCaption = L"Shadows Demo"; <- Crashes here !!!
mLastMousePos.x = 0;
mLastMousePos.y = 0;
...
}
Run Code Online (Sandbox Code Playgroud)
mMainWndCaption在.h中被声明为这样
std::wstring mMainWndCaption;
Run Code Online (Sandbox Code Playgroud)
并在ShadowsApp继承自的类的构造函数中使用默认值进行设置
D3DApp::D3DApp(HINSTANCE hInstance) :
mhAppInst(hInstance),
mMainWndCaption(L"D3D11 Application"),...
Run Code Online (Sandbox Code Playgroud)
我想,这已经很奇怪了......现在最奇怪的部分是当我在d3dApp.h中声明任何类型的ANY变量时,我不再有"访问冲突写入位置0xCCCCCCCC"错误,所有内容都构建并运行完美.作为一名C#程序员,这对我来说绝对没有意义.如何在类中声明一个随机变量可以"修复"这样的事情?!
任何建议将不胜感激:-)
"运行时访问冲突写入位置0xCCCCCCCC"错误.
您正尝试在调试版本中使用msvc下的单位指针.
初始化指针.
mMainWndCaption = L"Shadows Demo"; < - 崩溃在这里!
在此位置安装断点,在调试器下运行应用程序,并调查变量的内容(在"监视"窗口内,或将鼠标悬停在各个变量上),包括this指针.