首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-01-01 
Code::Blocks使用CMarkup解析XML的问题下面的代码编译运行正常:#include stdio.h#include tchar.h#inc

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,可行。

热点排行