開発環境 |
Microsoft Visual C++ 2010 Express (SP1) |
実行環境 |
Microsoft Windows XP Home Edition (SP3) |
プロジェクトの種類 |
Win32 プロジェクト |
プロジェクト名 |
aaa |
アプリケーションの種類 |
Windows アプリケーション |
追加のオプション |
空のプロジェクト |
プロジェクトの新規作成
- メニューから「ファイル」→「新規作成」→「プロジェクト」を選択する
- 「Win32 プロジェクト」を選択する
- 名前を入力する「aaa」
- 「ソリューションのディレクトリを作成」のチェックを外す
- アプリケーションの種類から「DLL」を選択する
- 「空のプロジェクト」にチェックを付ける
ソースファイルの追加
- 「ソリューション エクスプローラー」の「ソース ファイル」を右クリックし、ポップアップメニューから「追加」→「新しい項目」を選択する
- 「C++ ファイル (.cpp)」を選択する
- 名前を入力する「aaa.c」
- 同様に「ヘッダー ファイル」を右クリックし、ポップアップメニューから「追加」→「新しい項目」を選択する
- 「ヘッダー ファイル (.h)」を選択する
- 名前を入力する「aaa.h」
ソースの入力
aaa.h
#ifdef AAA_EXPORTS // プリプロセッサの定義
#define AAA_API __declspec(dllexport)
#else
#define AAA_API __declspec(dllimport)
#endif
AAA_API int aaa(int a, int b);
aaa.c
#include <Windows.h>
#include "aaa.h"
BOOL APIENTRY DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved)
{
switch (fdwReason) {
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
AAA_API int aaa(int a, int b)
{
return a * b;
}
ビルド
- ビルドを行い aaa.h aaa.lib aaa.dll を他のプロジェクトにコピーする
動作確認
bbb.c
#pragma comment(lib, "aaa.lib")
#include <stdio.h>
#include "aaa.h"
int main()
{
int c;
c = aaa(33, 3);
printf("%d\n", c);
return 0;
}
最終更新:2012年09月01日 16:44