次の方法で共有


C または C++ 言語の実行可能ファイルで使用する C 関数をエクスポートする

C で記述された DLL に関数がある場合は、プリプロセッサ マクロを使用して、C 言語と C++ 言語コードの両方から簡単にアクセスできます。 __cplusplus プリプロセッサ マクロは、コンパイルされている言語を示します。 これを使用して、C++ 言語コードから呼び出されたときに C リンケージを持つ関数を宣言できます。 この手法を使用し、DLL のヘッダー ファイルを指定する場合、C と C++ のユーザーはこれらの関数を変更せずに使用できます。

次のコードは、C および C++ クライアント アプリケーションの両方で使用できるヘッダー ファイルを示しています。

// MyCFuncs.h
#ifdef __cplusplus
extern "C" {  // only need to export C interface if
              // used by C++ source code
#endif

__declspec( dllimport ) void MyCFunc();
__declspec( dllimport ) void AnotherCFunc();

#ifdef __cplusplus
}
#endif

場合によっては、C 関数を C++ 実行可能ファイルにリンクする必要がありますが、関数宣言ヘッダー ファイルでは上記の手法が使用されていません。 引き続き C++ から関数を呼び出すことができます。 C++ ソース ファイルで、 #include ディレクティブをラップして、コンパイラが C 関数名を修飾できないようにします。

extern "C" {
#include "MyCHeader.h"
}

目的に合ったトピックをクリックしてください

さらに詳しくは次のトピックをクリックしてください

関連項目

DLL からのエクスポート