DLL作成 方法(暗黙的リンク)
- 「ファイル」-「新規作成」-「プロジェクト」
「Win32プロジェクト」を選択
- 「アプリケーションの設定」を選択
「アプリケーションの種類」を「DLL」にする。
「追加のオプション」を「シンボルのエクスポート」にする。
- ソースコードを編集する。(不要な部分をコメントアウトする。)
ソース ファイル
//DLL アプリケーションのエントリ ポイントを定義します。 #include "stdafx.h" #include "dnTestDll_Dll.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } //// これは、エクスポートされた変数の例です。 //DNTESTDLL_DLL_API int ndnTestDll_Dll=0; // //// これは、エクスポートされた関数の例です。 //DNTESTDLL_DLL_API int fndnTestDll_Dll(void) //{ // return 42; //} // //// これは、エクスポートされたクラスのコンストラクタです。 //// クラス定義に関しては dnTestDll_Dll.h を参照してください。 //CdnTestDll_Dll::CdnTestDll_Dll() //{ // return; //}
ヘッダー ファイル
#ifdef DNTESTDLL_DLL_EXPORTS #define DNTESTDLL_DLL_API __declspec(dllexport) #else #define DNTESTDLL_DLL_API __declspec(dllimport) #endif // //// このクラスは dnTestDll_Dll.dll からエクスポートされました。 //class DNTESTDLL_DLL_API CdnTestDll_Dll { //public: // CdnTestDll_Dll(void); // // TODO: メソッドをここに追加してください。 //}; // //extern DNTESTDLL_DLL_API int ndnTestDll_Dll; // //DNTESTDLL_DLL_API int fndnTestDll_Dll(void);
- とりあえず「Func1」という関数を追加してみる。
ソース ファイルを追加して、コードを記述する。
#include "stdafx.h" #include "dnTestDll_Dll.h" using namespace std; DNTESTDLL_DLL_API void CCONV Func1(void) { cout << "FUNC1\n"; return; }
ヘッダー ファイルにコードを記述する。
#ifdef DNTESTDLL_DLL_EXPORTS #define DNTESTDLL_DLL_API __declspec(dllexport) #else #define DNTESTDLL_DLL_API __declspec(dllimport) #endif #define CCONV _stdcall //テスト関数 DNTESTDLL_DLL_API void CCONV Func1(void);
- EXEファイルのプロジェクトにDLL追加する。
- ライブラリ ファイルを追加する。
- EXEファイルのプロジェクトにDLLのヘッダーファイルを追加する。
- これでOKです。