bool 때문에 미치고 펄쩍뛰다가 혀깨물고 죽겠습니다.. ㅡㅡ;

munamuna의 이미지

안녕하세요... 비슷한 경험 혹시 있으시거나 해결방법 아시는 분이 계시다면 조언 부탁드립니다.

이번에 프로젝트를 진행하는데, 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을 지우고 메이크하면 가능은 합니다만.. ㅡㅡ;

좋지는 못한 방법이겠지요..;;

부디 해결책좀 알려주세요...ㅠ.ㅠ;

이걸로 하루 웬종일 잡아먹었습니다.

ㅠ.ㅠ

bushi의 이미지

#ifndef __cplusplus
typedef int bool;
#endif

#include <stdbool.h>

PMXX 라는 놈이 한 10년쯤 전에 만들어진 놈인가요 ?

OTL

munamuna의 이미지

흙흙.. 정말 거짓말 하나 안보태고 눈물나게 감사드려요.. 허허헝...ㅠㅠ.;;

옆에 계셨다면 꽉 끌어안고 뽀뽀라도 마구 해드리고 싶을 정도네요.. ㅠ.ㅠ~~

정말 너무 감사드려요...ㅠ.ㅠ

PMXX는 만든지 한 4년 정도 됬고요.. 일본내 "저명하고 유명하신 박사님(?)"들께서 모여 만드셨다고 합니다.. ㅡㅡ;

워낙 저명하고 유명하신지라 사방 팔방에서 에러때문에 요청이 쇄도하는지라 아주 소스채 풀로 공개하고 있습니다..;;;

근데 stdbool.h는 비주얼스튜디오6에는 없네요... ;;

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.