2010-12-01 2 views
2

lib 파일에 선언 된 c 함수를 C++에서 호출해야합니다. 이것을 위해 설정해야 할 지시/속성/구성은 무엇입니까?C++에서 lib 파일의 c 함수 호출

+2

사용'통근 "C"를 체크 아웃' – valdo

+0

왜 대답 대신 주석으로 그 넣지? –

답변

5

라이브러리에 대한 헤더 파일이 있습니까? 그렇다면 C 프로그램에서 사용할 수 있도록

extern "C" { 
blah blah 
} 

가지가 있어야합니다. 그렇지 않다면, 당신은 자신의 코드에서 헤더에 대한 include 문 주위에 넣을 수 있습니다. 예 : 당신이 자신을 헤더 파일을 작성하는 경우

extern "C" { 
    #include "imported_c_library.h" 
} 
+0

나는 그것이 효과가 있다고 생각하지 않는다! include 앞에 #가 ​​있어야하고 no가 필요합니다. 결국. – TonyK

+0

너무 빨리 입력하고있었습니다. 버튼을 누르기 전에 다시 읽어야합니다. – AlastairG

2

함수의 선언 앞에 extern "C"가 있는지 확인하십시오 (헤더에없는 경우).

1

, 그것은이가 당신의 C 컴파일러에 의해 무시하지만, C++ 하나에 의해 포착됩니다 그래서이

#ifdef __cplusplus 
extern "C" { 
#endif 

... 

#ifdef __cplusplus 
} 
#endif 

같은 일을하는 것이 좋다. 덧붙여, 당신이 필요한 이유의 좋은 토론,

Why do we need extern "C"{ #include <foo.h> } in C++?