2011-12-22 41 views
1

我努力让TinyXML在我的Visual C++项目中工作。TinyXML编译 - Visual C++(掌上电脑)

我正在尝试创建一个读取XML配置文件的Windows Mobile 5.0/CE应用程序。 我在对话框的MFC智能项目中使用Pocket PC 2003(ARMV4)体系结构。即使在一个空白的项目中,只是试图编译库,它给了我相同的结果,我不明白为什么。

我在我的项目添加了这些六个文件:

- tinyxml.h 
- tinystr.h 
- tinyxml.cpp 
- tinystr.cpp 
- tinyxmlerror.cpp 
- tinyxmlparser.cpp 

,这让我这个在编译时:

tinyxml.cpp 
..\..\tinyxml_2_6_2\tinyxml\tinyxml.cpp(44) : error C3861: 'fopen_s' : identificateur introuvable 
..\..\tinyxml_2_6_2\tinyxml\tinyxml.cpp(116) : error C3861: '_snprintf_s' : identificateur introuvable 
..\..\tinyxml_2_6_2\tinyxml\tinyxml.cpp(1239) : error C3861: 'sscanf_s' : identificateur introuvable 
..\..\tinyxml_2_6_2\tinyxml\tinyxml.cpp(1246) : error C3861: 'sscanf_s' : identificateur introuvable 
..\..\tinyxml_2_6_2\tinyxml\tinyxml.cpp(1255) : error C3861: '_snprintf_s' : identificateur introuvable 
..\..\tinyxml_2_6_2\tinyxml\tinyxml.cpp(1266) : error C3861: '_snprintf_s' : identificateur introuvable 

identificateur introuvable可译为标识符没有找到

有谁知道为什么?

谢谢!

回答

2

我终于解决了我的问题。我与PugiXML等其他库文件存在相同的问题。

事实上,它是引起功能先前援引声明:

fopen_s 
_snprintf_s 
sscanf_s 

看来,Windows Mobile的架构无法对付他们。根据Visual Studio的版本,他们在代码中声明:

#if !defined(_MSC_VER) || _MSC_VER >= 1300 
    declaration (fopen_s, sscanf_s ...) 
#else 
    other declaration 

通过改变声明的条件(例如MSC_VER 4000),该库中声明,让我正确编译等功能。它现在正在使用Windows Mobile。

希望这会有所帮助!

+0

在我的情况下,我不得不在CE下修改一些#if。 – korbes 2014-02-13 16:40:11