VC++2010でDLLを作って、かつ、デバッグする

案外情報が無いし手間取った。

  • 新規プロジェクトでMFC DLLを作成
  • 呼び出されたい関数をcppに作成。 __declspec(dllexport)と__declspec(dllimport) がキモ
extern "C" __declspec(dllexport) long AddLong(long, long);

long AddLong(long i, long j){

	return i+j;
}
  • 新規プロジェクトでMFCアプリケーション「TestApp」を作成
    • ダイアログベースにしとく
  • プロジェクトのプロパティから共通プロパティに「新しい参照の追加」で先に作ったプロジェクトを指定
  • リソースエディタでボタンを追加してダブルクリック
  • 開いた関数にDLL関数呼び出しコードを書く
extern "C" __declspec(dllimport) long AddLong(long, long);

void CTestAppDlg::OnBnClickedButton1()
{
	// TODO: ここにコントロール通知ハンドラー コードを追加します。

	long ij = AddLong(1,2);
}
  • ビルド
  • 最初に作ったDLLプロジェクトのプロパティでデバッグ>コマンド引数のところにTestApp.exeへのパスを指定する。
  • デバッグ実行
    • DLL内の関数にブレークを貼って、ちゃんとデバッグできるかチェック


ネタ元