2011-12-22 73 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