Form appを作る
- Visual Studioを開き、New Projectを作る、ダイアログで"Visual C#" -> "Windows Form Applicattion"を選択し、名前は"DLLTestForm"
MFC DLLプロジェクトをソリューションに追加する
DLLにする関数を追加する
- "DLLTestEngine.cpp"を開き、行末に以下を追加する
int DLL_add(int argument1, int argument2)
{
return argument1 + argument2;
}
DLLの関数export関数を宣言する
- 上記で追加した関数の上に、以下を追加
extern "C" __declspec(dllexport) int DLL_add(int, int);
以上で呼び出されるDLLの実装は終了、次は呼び出すapp側の実装
FormにUIオブジェクトを配置する
- "DLLTestForm"のForm1にbuttonとlabelを配置する、名前はそれぞれ"buttonAdd"、"labelResult"
ボタンのイベントハンドラを実装する
private void buttonAdd_Click(object sender, EventArgs e)
{
int argument1 = 1;
int argument2 = 1;
int Return = DLL_add(argument1, argument2);
labelResult.Text = string.Format("{0}", Return);
}
DLLラッパー関数を作成する
- "Form1.cs"のForm1の宣言直後に、以下を追加
[DllImport("DLLTestEngine.dll", CallingConvention = CallingConvention.Cdecl)]
static extern int DLL_add(int argument1, int argument2);
ビルドする
- ビルドする、ビルドが終わったら、ビルドされたDLLをC# appのexeのあるフォルダーにコピーする
実行する
- うまくいけば、Formの表示されているラベルが"label1"から"2"に変わるはずだ。