我的对话框程序在关闭的时候,系统总是抛出错误:
Run-Time Check Failure #2 - Stack around the variable 'InitCtrls' was corrupted.错误指到了我的程序的MyClient.cpp文件中的下面的这个函数中。
其中错误中提到的 'InitCtrls' 就是下面的这个!
BOOL CMyClientApp::InitInstance()
{
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance();
}我的程序中使用了线程,不知道和这个有没有关系!
请大家帮忙解决啊,谢谢大家了!
这种错误一般都是什么原因导致的呢?
Run-Time Check Failure #2 - Stack around the variable 'InitCtrls' was corrupted.错误指到了我的程序的MyClient.cpp文件中的下面的这个函数中。
其中错误中提到的 'InitCtrls' 就是下面的这个!
BOOL CMyClientApp::InitInstance()
{
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance();
}我的程序中使用了线程,不知道和这个有没有关系!
请大家帮忙解决啊,谢谢大家了!
这种错误一般都是什么原因导致的呢?
如果有导入函数或者api原始声明是 __stdcall func(...)或者 WINAPI func(...)
而你在声明的时候省略了__stdcall或WINAPI,那么就会导致堆栈损坏,就出现lz说的错误仔细检查各个不是由你实现的函数的声明
问题的原因是 你在某处写东西时 比小心把InitCtrls周边的值 给改了 比方说
char t;
int b; memcpy(&t, "123", 2); 至于到底什么地方出现这个问题最好是自己查