티스토리 뷰
http://www.cocos2d-x.org/forums/6/topics/37531
오늘 위 링크에 나온 에러를 겪었는데 참 난감했다. 여태껏 프로그래밍 하면서 한 번도 만난 적이 없었던 에러였는데 해결 방법 조차도 난해했기 때문이다. 다른 개발자 분들은 어떤식으로 개발하시는지 모르겠지만 현재 내 프로젝트에서는 CCCallFunc를 이용해서 Event Driven을 하고 있다.
일단 내가 오늘 위 에러를 해결한 방법은 Wrapping용 함수를 생성한 것이다. CCCallFunc을 생성할 때 callfunc_selector를 쓰게 되어있는데, 이 selector 안에 '다중 상속을 받은 클래스의 가상함수'를 넣어서 쓰니까 에러가 났던 것이었다. (간헐적 발생이었던건지 아닌지는 기억이 잘 안 난다. 시간이 없어서 제대로 연구를 못해봤다....;;)
클래스에다가 Wrapping용 함수(가상함수가 아닌 함수)를 하나 생성한 뒤, 그 함수 내부에서 원래 호출하려던 함수를 호출하게 하고, Wrapping용 함수를 selector에 넣어 작동하게 하면 에러가 나지 않는다.
아직 C++에 미숙해서 그런가 굉장히 당황스러웠던 에러다. 검색해서 나오는 일반적인 자료에는 프로젝트 옵션에서 calling convention을 바꿔라 그러는데 정작 프로젝트 옵션에서 stdcall로 변경하면 cocos2d-x 엔진쪽에서 에러가 나는데다가, visual studio에서 설정 바꿔봤자 다른 플랫폼 위해서 gcc 같은걸로 컴파일 해서 나온 결과도 기존 문제 그대로 안고 갈 것 같고.... 하여튼 일단 해결하긴 했는데 더 연구해봐야 할 문제인 것 같다.
'프로그래밍 > 게임 개발' 카테고리의 다른 글
[cocos2dx] tolua++ 툴을 프로젝트 디렉토리 내부로 옮기기 (0) | 2014.02.12 |
---|---|
[cocos2dx] Smooth panning and zoom layer (0) | 2014.01.21 |
[cocos2dx] Lua binding - 커스텀 클래스를 만들어서 binding 하기 (0) | 2013.12.19 |
[cocos2dx] CCMenuItemImage 이미지 한 장짜리로 버튼 효과 내기 (2) | 2013.12.05 |
[cocos2dx] 2.2 버전의 lua binding으로 만든 간단한 게임 프로젝트 공유 (0) | 2013.12.03 |
- Total
- Today
- Yesterday