2010-12-01 11 views
2

私はlibファイルで宣言されたc関数をC++から呼び出さなければなりません。このために設定しなければならない命令/属性/設定C++からlibファイルのc関数を呼び出す

+2

使用 'はextern「C」' – valdo

+0

なぜ、代わりにコメントの答えとしてそれを入れないをチェックアウト? –

答えて

5

ライブラリのヘッダーファイルはありますか?その場合は、Cプログラムで使用できるように

extern "C" { 
blah blah 
} 

のものを含める必要があります。そうでなければ、あなた自身のコードのヘッダーのインクルードステートメントの周りにそれを置くことができます。例えば。

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

私はそれが動作するとは思わない! includeの前に#が必要です。最後に。 – TonyK

+0

少し早く入力していました。ボタンを押す前に再読みする必要があります。 – AlastairG

2

関数の宣言の前にextern "C"を置いてください(ヘッダにまだない場合)。

1

あなたはヘッダを自分でファイルを作成している場合、それは、これはあなたのCコンパイラによって無視されますが、C++ 1によって拾われますように、この

#ifdef __cplusplus 
extern "C" { 
#endif 

... 

#ifdef __cplusplus 
} 
#endif 

のような何かをすることが多いうれしいです。ところで、あなたはこれを必要とする理由の良い議論のために、

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

関連する問題