なぜか今日はMFCですw
とある人から「MFC共Cのプロジェクトを<標準Windowsライブラリを使用する>に変更してもビルド通るんだけど」って話を聞きました。んー、まあもともと共有DLLをリンクしてるからありえなくもないよなーっと思って実験してみました。
①MFCプロジェクトを新規作成
②プロジェクトの設定を<標準Windowsライブラリを使用する>に変更
Image may be NSFW.
Clik here to view.
そしてビルド!
Image may be NSFW.
Clik here to view.
えー、怒られたじゃん・・・。まあ、普通はそうだよねー。
とは言え、ビルドできたって言ってるんだから、やってみようじゃないですか。
_AFXDLLを定義
エラーで_AFXDLLが定義されてないよって言われてるから、無理やり定義します。
Image may be NSFW.
Clik here to view.
で、ビルドすると・・・
Image may be NSFW.
Clik here to view.
あー、そういうと思ったよ。でもめげないよー。
_tWinMainを作成
たしかappmodul.cppにそんなの定義されてたよねー。その関数だけコピってきます。
で、これをMainFrm.cppの最後に貼る。(場所はどこでもいいです。)
externint AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, int nCmdShow); extern"C"int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, int nCmdShow) #pragma warning(suppress: 4985) { // call shared/exported WinMainreturn AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow); }
さー、ビルド!おー、通ったよ。で実行すると・・・
Image may be NSFW.
Clik here to view.
動きましたー
結論
- 普通にやるとビルド通らない
- 無理やりやるとビルド通って実行もできる