忍者ブログ
メモ、備忘録、その他雑記を記載します。 ただし、このHPに記載している情報を利用した結果 損失・損害等が発生したとしても筆者は責任を持ちません。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

 

 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();
 

拍手[0回]

PR
コメントを書く
お名前
タイトル
メールアドレス
URL
コメント   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
パスワード
この記事へのトラックバック
この記事にトラックバックする:
 HOME | 23  22  21  19  18  17  16  13  12  11  10 
Admin / Write
カレンダー
05 2025/06 07
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
Ace
性別:
非公開
バーコード
ブログ内検索
P R
忍者アナライズ
忍者ブログ [PR]