尝试在使用 Visual Studio 2005 编译的 Windows CE 6.0 下运行 RapidXml 1.13 时遇到一个非常奇怪的问题。我有一个非常小的程序无法运行:
#include <rapidxml.hpp>
using namespace rapidxml;
int _tmain(int argc, _TCHAR* argv[])
{
xml_document<char> doc;
return 0;
}
它编译得很好,有 0 个错误和 0 个警告(在 W3 时)。但是,当我运行或调试程序时,我得到一个访问冲突异常:
RapidXml_Test.exe 中 0x000110d4 处的第一次机会异常:0xC0000005:访问冲突写入位置 0x0001fb48。
然后调试器将这一行(rapidxml.hpp 中的 1366)作为罪魁祸首(左大括号)指向:
template<class Ch = char>
class xml_document: public xml_node<Ch>, public memory_pool<Ch>
{
public:
//! Constructs empty XML document
xml_document()
: xml_node<Ch>(node_document)
------->{
}
...
如果有人有任何线索可能是什么问题,我将不胜感激。我的构建和运行时环境中有更复杂的代码工作,所以我不怀疑那里有任何东西。我也相当有信心这不是一个项目设置。在这一点上,我假设 RapidXml 对模板的使用以某种方式混淆了 Windows CE VC++ 编译器。我不知道还能是什么。
提前致谢!