티스토리 뷰
cocos2d-x에서 xml parser를 사용하려고 이것저것 찾아봤는데, 소스코드 내에서 CCSAXParser라는 것을 발견하였지만 어떻게 사용하는지 몰라서 포기! 결국 찾다 찾다 pugixml이 가장 나은 것 같아서 이를 사용하게 되었다.
http://www.cocos2d-x.org/boards/6/topics/11313
위 주소를 참고해서 사용하게 되었는데~
우선 그냥 pugixml을 사용해서 cygwin을 이용해 빌드하면 에러가 난다!(ndk-r8 기준)
에러인 즉슨 g++ 컴파일러를 기본옵션으로 돌릴 때 throw 를 지원하지 않기 때문인듯 하다.
에러 내용은 무슨 -fexception 명령옵션을 사용해서 throw를 멈춰라.. 뭐 이런거였는데..
해결은 pugixml.cpp의 최 상단의 헤더 선언부 바로 아래에 PUGIXML_NO_EXCEPTIONS를 define해줬다.
즉, #define PUGIXML_NO_EXCEPTIONS 만 선언해 주면 끝.
내용을 보니까 PUGIXML_NO_EXCEPTIONS가 ifdef돼있는 경우 exception을 사용하지 않게 돼있더라~
그리고..
win32환경의 cocos2d-x에서는 load_file로도 xml이 잘 읽히지만, 문제는 android환경에서 돌릴때 이다.
assets에 있는 png나 jpg는 잘 읽으면서 그 외의 리소스는 잘 못 읽더라.
xml을 읽게 하기 위해서는 load_file이 아니고 다른걸 써야 하더라! 이 역시 위의 블로그를 참조했다.
길게 설명하면 귀찮으니 소스 한방으로 끝내자면
unsigned char* pBuffer = NULL;
unsigned long bufferSize = 0;
pBuffer = CCFileUtils::sharedFileUtils()->getFileData(fullPath.c_str(), "r", &bufferSize);
if(!doc.load_buffer(pBuffer,bufferSize)) return false;
이렇게 해주면 xml이 잘 로딩된다. 이후에는 node를 만들어서 진행하면 된다~
이유에 대한 설명은 위에 참조한 사이트에 가면 써있다~~~
'Development > Mobile' 카테고리의 다른 글
반복적인 작업이 싫은 안드로이드 개발자에게 (0) | 2012.07.26 |
---|---|
[android] 안드로이드에서 사용하는 여러가지 경로들 (0) | 2012.07.22 |
httpget 보내서 결과 얻어오기 (0) | 2012.07.19 |
[android/cocos2d-x] onBackPressed()의 구현 (0) | 2012.07.18 |
[Android] 웹페이지 내용 가져오기 (0) | 2012.02.26 |
[Android] SD카드에 파일을 쓸려는데 자꾸만 java.io.FileNotFoundException이 떴다. (0) | 2011.12.04 |
[Android] 데모버전 apk를 export하기 위해 패키지명 바꾸는 방법. (0) | 2011.12.04 |
[iOS] Objective C의 기본 문법 (0) | 2011.05.11 |
- Total
- Today
- Yesterday
- Quiz
- C
- db
- API
- gcc
- 안드로이드
- source
- jni강좌
- android
- database
- Visual C++
- linux
- Cloud
- C++
- java
- Troubleshooting
- 리눅스
- MFC
- jni
- NDK
- it
- 프로그래밍
- driver
- winapi
- 음악
- kering
- 드라이버
- algorithm
- AWS
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |