pugixml沒有設計這樣的工作方式。理想情況下,你可以嘗試更改代碼,使用編譯標誌的一個組合(功能進行UTF-8 < - > wchar_t的轉換,pugi :: as_utf8和pugi :: as_wide,可能會幫助)。
有應工作不支持的方式,但不是特別漂亮 - 你可以爲WCHAR配置重命名pugi命名空間。要做到這一點,你必須創建一個特殊的頭文件,即pugixmlw.hpp,它將包含在寬字符配置中;這頭的內容應該是大致如下:
#ifndef HEADER_PUGIXMLW_HPP
#define HEADER_PUGIXMLW_HPP
#define PUGIXML_WCHAR_MODE
#define pugi pugiw
#undef HEADER_PUGIXML_HPP
#undef HEADER_PUGICONFIG_HPP
#undef SOURCE_PUGIXML_CPP
#undef PUGIXML_TEXT
#undef PUGIXML_CHAR
#include "pugixml.hpp"
#undef PUGIXML_TEXT
#undef PUGIXML_CHAR
#undef HEADER_PUGIXML_HPP
#undef HEADER_PUGICONFIG_HPP
#undef SOURCE_PUGIXML_CPP
#undef pugi
#undef PUGIXML_WCHAR_MODE
#endif
如果您使用僅標頭pugixml變種,這應該是它;如果你正在編譯pugixml.cpp,你就必須添加一個額外的源文件,pugixmlw.cpp,其內容如下:
#define PUGIXML_WCHAR_MODE
#define pugi pugiw
#include "pugixml.cpp"
這應該是它。