mfc中使用标准库stl出现xdebug、xlocale错误的解决方法
2009-08-31 11:43
471 查看
参考:
在2005mfc的单文档框架中使用#include<fstream>编译出错
初學者想請問 xlocale 以及 xdebug
Debug errors in VC++ .NET (xdebug)
最近因为编程需要,需要在控制台程序中使用mfc的CString,在建立console工程的时候,选择了mfc选项,
结果在include标准库stl的头文件的时候,出现了一大堆的xdebug、xlocale错误,该问题我是第一次碰见,
在一番google搜索之后,找到了解决方法,特此做一个收藏
// 来源:http://social.msdn.microsoft.com/Forums/zh-TW/234/thread/e27da79b-ac38-4db8-a1d8-5536070590e9
// 正常的 头部:
#include "stdafx.h"
#include "OLE DOC Viewer.h"
#include "OLE DOC ViewerDlg.h"
#include "./ole doc viewerdlg.h"
#include "selectiondlg.h"
#include "QQCrypt.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// #include <iostream>
// 但是如果把使用了 STL的文件的#include 放在后面就出问题!!!
=============================================================
=============================================================
// 解决方法
#include "stdafx.h"
#include "OLE DOC Viewer.h"
#include "OLE DOC ViewerDlg.h"
#include "./ole doc viewerdlg.h"
#include "selectiondlg.h"
// 在这里包含标准库的相关头文件
#include <iostream>
using namespace std;
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
#include "QQCrypt.h"
// 原因是DEBUG中,new被重载了!
正如上面得代码所说,在debug版下,new被重载(标准库stl内部对new进行了重载,两者互相冲突)
必须保证标准库include语句出现在
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
之前;
最简单的方法就是将所有的需要的stl的头文件放在stdafx.h文件中(预编译头文件),这样肯定能够保证stl
的头文件出现在上面的debug代码的前面
ps:当然我并不推荐这种方法,将所有的头文件都丢到stdafx.h中,这是一种不负责任的编码习惯,
“应该合理的安排头文件之间的依赖关系”--参见effective c++
在2005mfc的单文档框架中使用#include<fstream>编译出错
初學者想請問 xlocale 以及 xdebug
Debug errors in VC++ .NET (xdebug)
最近因为编程需要,需要在控制台程序中使用mfc的CString,在建立console工程的时候,选择了mfc选项,
结果在include标准库stl的头文件的时候,出现了一大堆的xdebug、xlocale错误,该问题我是第一次碰见,
在一番google搜索之后,找到了解决方法,特此做一个收藏
// 来源:http://social.msdn.microsoft.com/Forums/zh-TW/234/thread/e27da79b-ac38-4db8-a1d8-5536070590e9
// 正常的 头部:
#include "stdafx.h"
#include "OLE DOC Viewer.h"
#include "OLE DOC ViewerDlg.h"
#include "./ole doc viewerdlg.h"
#include "selectiondlg.h"
#include "QQCrypt.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// #include <iostream>
// 但是如果把使用了 STL的文件的#include 放在后面就出问题!!!
=============================================================
=============================================================
// 解决方法
#include "stdafx.h"
#include "OLE DOC Viewer.h"
#include "OLE DOC ViewerDlg.h"
#include "./ole doc viewerdlg.h"
#include "selectiondlg.h"
// 在这里包含标准库的相关头文件
#include <iostream>
using namespace std;
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
#include "QQCrypt.h"
// 原因是DEBUG中,new被重载了!
正如上面得代码所说,在debug版下,new被重载(标准库stl内部对new进行了重载,两者互相冲突)
必须保证标准库include语句出现在
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
之前;
最简单的方法就是将所有的需要的stl的头文件放在stdafx.h文件中(预编译头文件),这样肯定能够保证stl
的头文件出现在上面的debug代码的前面
ps:当然我并不推荐这种方法,将所有的头文件都丢到stdafx.h中,这是一种不负责任的编码习惯,
“应该合理的安排头文件之间的依赖关系”--参见effective c++
相关文章推荐
- mfc中使用标准库stl出现xdebug、xlocale错误的解决方法
- [转]mfc中使用标准库stl出现xdebug、xlocale错误的解决方法
- VS2013中编译项目在静态库中使用MFC出现错误的解决方法
- 在android中使用proguard混淆代码出现“Conversion to Dalvik format failed with error 1”错误的解决方法
- 遇到的错误-----MySQL使用临时表 出现 “ERROR 1137 (HY000): Can't reopen table” 的异常 解决方法
- 使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type: text/html 解决方法
- 使用Struts2继承ActionSupport出现错误,简单解决方法
- winsock使用WSAStarup出现错误的解决方法
- J2EE编程心得-使用Hibernate出现的错误及解决方法 更新中...
- Java中使用com.sun相关jar包出现编译错误,但是运行没有错误的解决方法和原因
- 关于使用ASP.NE 1.1发送电子邮件时出现的 未能访问“CDO.Message”对象 的错误的解决方法
- 在使用JasperReport中出现错误的部分解决方法
- 使用百度地图出现Unable to execute dex: Multiple dex files define Lcom/baidu/a/a/a/a错误解决方法
- 使用CURL出现certificate verify failed错误的解决方法
- 使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type: XXXX 解决方法
- SQL点滴7—使用SQL Server的attach功能出现错误及解决方法
- PCL库使用中出现的一些错误及解决方法
- 使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法
- ArcSDE复制数据时出现ORA-00955名称已由现有对象使用错误的解决方法
- linux3.0.1内核下V4L2接口使用zc301摄像头出现segment fault错误的解决方法