DLLの作成方法
(1) 「VS Express for Desktop」を右クリックして管理者として実行します。
(2)メニューの「ファイル」_「新しいプロジェクト」を選択します。
(3)テンプレートは、Visual C++ Win32コンソールアプリケーションを選択します。
(4)名前に「DLL_TEST」と入力します。(ソリューション名は自動的に同じとなります。)
(5)OKボタンを押します。
(6)次へのボタンを押します。
(7)ラジオボタンでDLLを選択します。
(8)完了ボタンを押します。
(9)デホルトでDLL_TEST.defファイルが組み込まれていません。(C++V6では、defファイルが自動生成され、プロジェクトの関連付けも完了していました。)
(10)したがって、手動でdefファイルを生成して、プロジェクトの関連付けを行う必要があります。
(11)「ソースファイル」を右クリックして「追加」_「新しい項目」を選択します。
(12)選択項目にdefファイルがありませんが、驚くことはありません。名前に「DLL_TEST.def」と入力します。
(13)追加ボタンを押します。
(14)「DLL_TEST.def」ファイルが追加されました。
(15)次に「DLL_TEST.def」とプロジェクトの関連付けを行います。
(16)メニューの「プロジェクト」_「DLL_TESTのプロパティ」を選択します。
(17)「構成プロパティ」_「リンカ」_「モジュール定義ファイル」に「DLL_TEST.def」と入力します。
(18)適用ボタンを押します。
(19)標準文字セットが日本語対応でないため、設定を変更します。
(20)「構成プロパティ」_「全般」_「文字セット」で「マルチバイト文字セットを使用する」を選択します。
(21)適用ボタンを押し、OKボタンを押します。
(22)「DLL_TEST.cpp」をダブルクリックします。
(23)以下のコードに書き換えます。
// DLL_TEST.cpp : DLL アプリケーション用にエクスポートされる関数を定義します。
//
#include "stdafx.h"
#include <windows.h>
void __stdcall DLL_TEST1()
{
MessageBox(NULL, "DLL呼び出し成功!", "test", MB_OK);
Beep(523,200);
}
double __stdcall ADD(double a,double b)
{
return a+b;
}
(24)「DLL_TEST.def」をダブルクリックします。
(25)以下のコードを書込みます。
EXPORTS
DLL_TEST1
ADD @16
*コード説明
*void __stdcall DLL_TEST1()は変数の受け渡しの無いサブルーチンでEXPORTSはDLL_TEST1となります。
*double __stdcall ADD(double a,double b)は8バイト、2個の変数を受取るためADD @16と記述します。
*__stdcallは外部参照のサブルーチンを意味します。
(26)「ビルド」_「ソリューションのビルド」を選択します。
(27)DLL_TEST\Debugフォルダー内にDLL_TEST.dllが完成しました。
(28)VBAで呼び出しやすいように、C:直下に「VBA_C_APP」フォルダーを作成します。
(29)C:\VBA_C_APPにDLL_TEST.dllファイルをコピーします。
*以上でVBAから呼び出すDLLファイル作成作業が完了します。