追加情報
使用しようとしている関数がインポートライブラリを持つDLLにバンドルされている場合は、手順1~6をスキップできます。
それでもリンクエラーが発生した場合は、おそらく名前修飾に関する問題が原因です。C++言語では、いくつかの関数(オブジェクト指向プログラミングのメソッドなど)を上書きすることができます。いくつかの名前が衝突する問題を解決するために、C++コンパイラは一意の名前識別子を持つために名前修飾を追加します。
したがって、C++プログラムでCライブラリを呼び出すと、C++コンパイラは名前を変更する必要がないことを知る必要があります。その場合、C++コンパイラによって作成された名前は、Cコードの名前とは異なり、リンケージエラーを説明します。これを解決するには、.cファイルに関連するヘッダーファイル(.h)に次のコードを追加する必要があります。
#ifdef __cplusplus
extern "C" {
#endif
/* The functions you want to keep the same in C and C++ */
#ifdef __cplusplus
}
#endif