メモ、備忘録、その他雑記を記載します。
ただし、このHPに記載している情報を利用した結果 損失・損害等が発生したとしても筆者は責任を持ちません。
VC6のDLL作成方法です。
1.ファイル→新規作成→プロジェクトで以下を選択
MFC AppWizard (dll)
※ここではプロジェクト名を仮に「SampleDll」とする。
MFC AppWizard - ステップ1 / 1の「作成する DLL の種類」で以下を選択
MFC の拡張 DLL (MFC の共有 DLL 使用)(E)
※これでMFC AppWizardを終了する。
2.関数の実装
int WINAPI Test();
int WINAPI Test()
{
AfxMessageBox(_T("DLL内関数テスト"));
return 0;
}
3.def.ファイルの修正
; SampleDll.def : DLL 用のモジュール パラメータ宣言
LIBRARY "SampleDll"
DESCRIPTION 'SampleDll Windows Dynamic Link Library'
EXPORTS
; 明示的なエクスポートはここへ記述できます
Test @1
※補足
2.関数の実装は、以下のように記載してもよい。
そうすると、3.def.ファイルの修正の手順は必要なくなる。
extern "C" __declspec(dllexport) int Test();
extern "C" __declspec(dllexport) int Test()
{
AfxMessageBox(_T("DLL内関数テスト"));
return 0;
}
実際の記載例は以下(DLLを暗黙的に使用する場合)
●DLL作成プロジェクト
・DLL関数ヘッダファイル
#ifdef DLL_EXPORT
#define DLL_DECLSPEC __declspec(dllexport)
#else
#define DLL_DECLSPEC __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C" {
#endif
DLL_DECLSPEC int Test();
#ifdef __cplusplus
}
#endif
・DLL関数CPPファイル
int Test()
{
AfxMessageBox(_T("DLL内関数テスト"));
return 0;
}
・StdAfx.h
#define DLL_EXPORT
●DLL呼出プロジェクト
#include "Xxx.h" // DLL関数ヘッダファイルのインクルード
extern "C" {
#pragma comment( lib, "Sample.lib" ) // DLLのlibファイル
}
Test();
PR
コメントを書く