我在使用Visual Studio 2005编译的Windows CE 6.0下运行RapidXml 1.13时遇到了一个非常奇怪的问题。我有一个非常小的程序,运行:在Windows CE 6.0/Windows Mobile/Windows Embedded Compact下使用RapidXml的奇怪例外
#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
第一次机会异常: 0000005:访问冲突写入位置0x0001fb48。
然后调试器指向这一行(1366在rapidxml.hpp)的罪魁祸首(开括号):
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++编译器。我不知道还有甚么可能。
在此先感谢!
does'xml_document <> doc;'faile(默认是'char')?怎么样'xml_document doc;'? CE非常偏向unicode,所以我想知道模板中的某些东西是否在某处扩展。 –
ctacke
它的确如此。我想到了。更新的问题。谢谢! –