2013-08-05 4 views
0

FTGL의 C API를 Visual Studio 2010의 C++ 코드에서 어떻게 사용합니까?C++에서 FTGL C API를 사용하는 방법?

FTGL uses #ifdef __cplusplus checks 동일한 헤더 파일에서 C 및 C++ API를 내보내십시오.

나는이 시도 :

#ifdef __cplusplus 
    #undef __cplusplus 
    #include <FTGL/ftgl.h> 
    #define __cplusplus 
#else 
    #include <FTGL/ftgl.h> 
#endif 

을하지만 VS2010 그것을 가지고되지 않습니다

warning C4117: macro name '__cplusplus' is reserved, '#undef' ignored 
warning C4117: macro name '__cplusplus' is reserved, '#define' ignored 
+0

왜 그렇게하려고합니까? FTGL의 헤더가'__cplusplus' 자체를 탐지 할 것이기 때문에 왜 C 코드의 헤더를보고 있다고 말하면서 거짓말을해야합니까? 헤더가 그 일을하도록하십시오. –

+0

C++ 코드에서 * C * API를 사용하고 싶습니다. – genpfault

답변

1

Visual Studio 2010의 C++ 코드에서 FTGL의 C API를 어떻게 사용합니까?

그렇지 않습니다.

FTGL 제조업체는 C++ 사용자가 C API를 사용하는 것을 원치 않습니다. 그래서 그들은 그들을 내버려 두지 않습니다.

__cplusplus 매크로는 C++ 언어의 일부입니다. 그것 수 없습니다 정의되지. 또는 정의 됨. 또는 재정의. 그리고 그것이 FTGL의 열쇠이기 때문에이를 준수하도록 속일 수는 없습니다.

이 문제를 피하는 유일한 방법은 FTGL 자체를 편집하는 것입니다.

2

을 매크로 __cplusplus이 예약 된 매크로이며, 가 컴파일러에 의해 자동으로을 정의해야합니다 당신이 경우 C++ 코드로 컴파일 (그리고 다르게 정의되지 않음). #define 수작업으로해서는 안되며 컴파일러가 오류를 발생시킵니다.