读书人

Code:Blocks使用CMarkup解析XML的有关

发布时间: 2013-01-01 14:04:19 作者: rapoo

Code::Blocks使用CMarkup解析XML的问题

下面的代码编译运行正常:



#include <stdio.h>
#include <tchar.h>
#include "markup.h"

int _tmain(int argc, TCHAR* argv[], TCHAR* env[])
{

CMarkup xml;
xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"));
xml.AddElem(_T("root"));
xml.AddChildElem(_T("child"));
xml.Save(_T("config.xml"));

return 0;
}



会输出以下的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child/>
</root>


如果在代码前加上
#define UNICODE

则编译不过,提示:

D:\CodeBlocks_Projects\demo\main.cpp||In function 'int main(int, TCHAR**, TCHAR**)':|
D:\CodeBlocks_Projects\demo\main.cpp|11|error: no matching function for call to 'CMarkup::SetDoc(const char [40])'|
D:\CodeBlocks_Projects\demo\markup.h|277|note: candidates are: bool CMarkup::SetDoc(const wchar_t*)|
D:\CodeBlocks_Projects\demo\markup.h|278|note: bool CMarkup::SetDoc(const std::wstring&)|
D:\CodeBlocks_Projects\demo\main.cpp|12|error: no matching function for call to 'CMarkup::AddElem(const char [5])'|
D:\CodeBlocks_Projects\demo\markup.h|346|note: candidates are: bool CMarkup::AddElem(MCD_CSTR, MCD_CSTR, int)|
D:\CodeBlocks_Projects\demo\markup.h|350|note: bool CMarkup::AddElem(MCD_CSTR, int, int)|
D:\CodeBlocks_Projects\demo\main.cpp|13|error: no matching function for call to 'CMarkup::AddChildElem(const char [6])'|
D:\CodeBlocks_Projects\demo\markup.h|348|note: candidates are: bool CMarkup::AddChildElem(MCD_CSTR, MCD_CSTR, int)|
D:\CodeBlocks_Projects\demo\markup.h|352|note: bool CMarkup::AddChildElem(MCD_CSTR, int, int)|
||=== Build finished: 3 errors, 0 warnings ===|

[解决办法]
在工程设置对话框里加UNICODE,可行。

读书人网 >C++

热点推荐