開発環境 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