我的对话框程序在关闭的时候,系统总是抛出错误:
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();
}我的程序中使用了线程,不知道和这个有没有关系!
请大家帮忙解决啊,谢谢大家了!
这种错误一般都是什么原因导致的呢?

解决方案 »

  1.   

    现在我觉得不是线程的问题,我运行程序,不按任何功能键,也没有调用线程函数,然后点关闭,结果还是出现这个问题!怎么回事啊 ?大侠们?help
      

  2.   

    函数堆栈不平衡
    如果有导入函数或者api原始声明是 __stdcall func(...)或者 WINAPI func(...)
    而你在声明的时候省略了__stdcall或WINAPI,那么就会导致堆栈损坏,就出现lz说的错误仔细检查各个不是由你实现的函数的声明
      

  3.   

    检查:BOOL InitCommonControlsEx(LPINITCOMMONCONTROLSEX lpInitCtrls);
      

  4.   

    见过这个问题。 
    问题的原因是 你在某处写东西时 比小心把InitCtrls周边的值 给改了 比方说 
    char t; 
    int  b; memcpy(&t, "123", 2); 至于到底什么地方出现这个问题最好是自己查 
      

  5.   

    哎  我根本就没有写关于退出的代码,直接继承的对话框类的cancel。呜呜。。
      

  6.   

    结贴了吧。可能wwgddx说的比较对,不过这个答复我也是看见过的。不过还是解决了,我在某个界面里定义了一个没有用到的变量,删除后,就没有这个异常了!