2010-12-01 55 views
2

我必須調用C++函數中聲明的c函數。我必須爲此設置什麼指令/屬性/配置?從C++調用lib函數中的c函數

+2

使用`爲extern「C」` – valdo 2010-12-01 12:41:22

+0

爲什麼不把那作爲一個答案,而不是評論? – 2010-12-01 12:56:07

回答

5

你有庫的頭文件嗎?如果是的話,它應該有

extern "C" { 
blah blah 
} 

東西在它允許它被C程序使用。如果沒有,那麼你可以在你自己的代碼中將頭部的include語句放在頭部中。例如。

extern "C" { 
    #include "imported_c_library.h" 
} 
2

確保您在函數聲明之前放置了extern「C」,如果它不在頁眉中。

1

如果你正在寫的頭文件自己,它往往是很好的做這樣的事情

#ifdef __cplusplus 
extern "C" { 
#endif 

... 

#ifdef __cplusplus 
} 
#endif 

使這個被你的C編譯器忽略,但用C++一個回升。順便說一下,爲什麼你需要一個很好的討論,看看

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