bool 때문에 미치고 펄쩍뛰다가 혀깨물고 죽겠습니다.. ㅡㅡ;
안녕하세요... 비슷한 경험 혹시 있으시거나 해결방법 아시는 분이 계시다면 조언 부탁드립니다.
이번에 프로젝트를 진행하는데, PMXX라는 공용 모듈을 사용하여 비주얼스튜디오6을 이용한 win32 프로그램을 만들어야 합니다.
C를 이용하여 만든 것으로 빌드하면 dll이 3개 튀어나오고 윈도우즈, 리눅스 범용대응이 되어 있으므로 OS에 상관없이 사용이 가능하다고 합니다.
코드를 보니 #ifdef WIN32라고 이곳저곳에 보이더군요. 흠.. 그런가 보다 했습니다.
아무것도 없이 그냥 WinMain만 만들고 메뉴얼에 써있는 대로 지정된 헤더를 인크루드..
빌드를 하니 bool이 이미 정의되어 있다고 나오는 군요.. ㅇㅅㅇ);;
찾아가 보니까 dll을 사용하기 위해 인크루드 해야되는 헤더 파일에
typedef int bool; 이라고 정의되어 있는 것입니다.
근데 이게 도대체가!! 해결이 되지를 않습니다.
아래가 제가 해본짓들 입니다.
(1) 공용모듈 프로젝트 코드 수정
#ifndef bool
typedef bool int;
#endif
>> 공용모듈 성공.
>> 제가 작성할 WIN32프로젝트에서 bool 이 이미 정의되어 있다고 나옵니다.
(2) 공용모듈 프로젝트 코드 수정2
#ifdef WIN32
...
#else
typedef bool int;
#endif
>> 공용모듈 실패. bool을 신텍스 에러로 인식합니다.
(3) 제가 작성할 프로젝트 수정
#ifdef bool
#undef bool
#endif
include PMXX.h
>> 공용모듈 성공.
>> 제가 작성할 win32프로젝트는 당연히 실패입니다. 뭐.. 키워드가 undef으로 없어질리 만무하겠지요.
이거 대체 어떻게 해야 합니까?
꼼수로 공용DLL을 먼저 typedef int bool로 한 상태로 메이크 한뒤
제 프로젝트 메이크 할때 typedef int bool을 지우고 메이크하면 가능은 합니다만.. ㅡㅡ;
좋지는 못한 방법이겠지요..;;
부디 해결책좀 알려주세요...ㅠ.ㅠ;
이걸로 하루 웬종일 잡아먹었습니다.
ㅠ.ㅠ
#ifndef __cplusplustypedef
PMXX 라는 놈이 한 10년쯤 전에 만들어진 놈인가요 ?
OTL
으허어어엉..ㅠ.ㅠ
흙흙.. 정말 거짓말 하나 안보태고 눈물나게 감사드려요.. 허허헝...ㅠㅠ.;;
옆에 계셨다면 꽉 끌어안고 뽀뽀라도 마구 해드리고 싶을 정도네요.. ㅠ.ㅠ~~
정말 너무 감사드려요...ㅠ.ㅠ
PMXX는 만든지 한 4년 정도 됬고요.. 일본내 "저명하고 유명하신 박사님(?)"들께서 모여 만드셨다고 합니다.. ㅡㅡ;
워낙 저명하고 유명하신지라 사방 팔방에서 에러때문에 요청이 쇄도하는지라 아주 소스채 풀로 공개하고 있습니다..;;;
근데 stdbool.h는 비주얼스튜디오6에는 없네요... ;;
http://www.koders.com/c/fidDF
http://www.koders.com/c/fidDF4818DD265741F8A74455FC281F0C1CBA35EB47.aspx
댓글 달기