2011-12-22 5 views
1

Visual C++ 프로젝트에서 TinyXML을 사용하는 데 어려움을 겪고 있습니다.TinyXML 컴파일 - Visual C++ (Pocket PC)

XML 구성 파일을 읽는 Windows Mobile 5.0/CE 응용 프로그램을 만들려고합니다. 대화 상자의 MFC Smart Project 기반에서 Pocket PC 2003 (ARMV4) 아키텍처를 사용합니다. 라이브러리를 컴파일하려고 시도하는 빈 프로젝트에서도 동일한 결과를 얻을 수 있으며 이유를 이해할 수 없습니다.

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

을 그리고 컴파일 할 때 그것은 나에게이 있습니다 :

나는 내 프로젝트에이 여섯 개 파일을 추가

introuvable이 식별자를 찾을 수 없습니다로 번역 될 수 identificateur
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 

.

이유를 아는 사람이 있습니까?

감사합니다.

답변

2

나는 결국 내 문제를 해결했습니다. PugiXML과 같은 다른 라이브러리에도 동일한 문제가있었습니다.

사실, 이전에 인용 된 함수의 선언에 의해 발생되었다

fopen_s 
_snprintf_s 
sscanf_s 

윈도우 모바일 아키텍처는 그들과 거래를 할 수없는 것 같다. 그들은 비주얼 스튜디오의 버전에 따라 코드에 선언했다 :

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

선언의 조건을 변경하여 (4000 예를 들어 MSC_VER을 위해), 도서관 나를 제대로 컴파일 할 수 다른 기능을 선언했다. 현재 Windows Mobile에서 작업 중입니다.

희망이 도움이 될 것입니다!

+0

제 경우에는 CE에서 다른 # if를 수정해야했습니다. – korbes