案外情報が無いし手間取った。
- 新規プロジェクトで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内の関数にブレークを貼って、ちゃんとデバッグできるかチェック
ネタ元