
Run-Time Check Failure #2 - Stack around the variable 's1' was corrupted.
这是我的代码.我用评论标记了相关的地方.
int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,_In_opt_ HINSTANCE hPrevInstance,_In_ LPTSTR lpCmdline,_In_ int nCmdshow) {UNREFERENCED_ParaMETER(hPrevInstance);UNREFERENCED_ParaMETER(lpCmdline); ////////////////// SET UP CHECKS FOR MEMORY LEAKS //////////////////// _CrtMemState s1; _CrtMemCheckpoint(&s1); _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); ////////////////////////////////////////////////////////////////////// log4cplus::PropertyConfigurator config(_T("log.propertIEs")); // <-- this line seems to be responsible for the issue. When I remove it,everything is ok. _CrtMemDumpAllObjectsSince(&s1); // <-- here program breaks with mentioned error. return 1;} 因此,正如在注释中所写,PropertyConfigurator()构造函数似乎对此问题负责.此处没有任何其他代码导致相同的问题.
我想知道如果这个库被许多人使用并且它有效可能会出错,而我有堆栈损坏的问题.
有没有人知道这里发生了什么?
编辑:
我删除了所有不必要的代码(上面的代码已编辑),只留下相关的代码.仍然是log4cplus :: PropertyConfigurator config(_T(“log.propertIEs”));似乎导致了这个问题.
解决方法 此错误运行时检查失败#2通常是由内存中的某个错误引起的.看了你提供的样本后你应该改变这个:log4cplus :: PropertyConfigurator config(_T(“log.propertIEs”));
对此:
log4cplus::PropertyConfigurator configure(_T("log.propertIEs")); 如果这没有帮助,那么开始查看内存的初始化.
总结以上是内存溢出为你收集整理的c – 使用库中的代码时,变量周围的堆栈已损坏全部内容,希望文章能够帮你解决c – 使用库中的代码时,变量周围的堆栈已损坏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)