一直再使用CMarkup处理xml文件数据,很是好使。具体的使用方法我就不一一列举了,网上还有很多类似的例子。今天我只是说说编译CMarkup出现的以下问题;
环境:win7+VS2013+QT5.7
1.打开头文件:Markup.h 在头文件上面列举出了主要的编译选项。
已经说的很是清楚了,可以通过添加或者删除宏的方式,编译不同版本的Markup。
2.我直接拿过来就开始编译。
出现的错误:
fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
提示编译MFC版本,可我这个QT版本呀。在QT下面怎么能使用MFC中的东西呢。需要直接使用STL的string来处理字符。所以需要在VS中添加宏:MARKUP_STL
再次重新编辑就OK了。
3.QT中我常用的字符是ANSI编码,那么怎么编译个ANSI编码的版本呢。通过查看头文件的宏发现了,版本默认使用的Unicode版本。
所以我要取消这个宏,然后添加新的宏来控制编译成Ansi版本,只需要在头文件开始的部分添加一下代码就可以了
#if (defined(_UNICODE) || defined(UNICODE)) && ! defined(MARKUP_WCHAR)
#undef _UNICODE
#undef UNICODE
#undef MARKUP_WCHAR
#define MARKUP_MBCS
#endif
xml文件编码格式必须改成:utf-8