カテゴリー
アーカイブ
2014/06/06 / MFC DLL → Static – 2 への1件のコメント
VC 6 などで生成したプロジェクトを,VC 7 ~ VC 11 まで順に変換して利用してきたもの.
「共有 DLL で MFC を使う」から「スタティック ライブラリで MFC を使用する」に変更してビルドすると,
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\afx.h(24):
fatal error C1189: #error : Building MFC application with /MD[d]
(CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
プロジェクトの「プロパティページ」-「構成プロパティ」-「C/C++」-「コード生成」-「ランタイム ライブラリ」を
「マルチスレッド DLL (/MD)」から「マルチスレッド (/MT)」に変更.
ビルドは通る様になったが,起動時メインフレーム表示直後にアプリケーションエラー.
プロジェクトのプロパティで,「リンカ」-「デバッグ」-「デバッグ情報の生成」で「はい (/DEBUG)」に.
ビルドして実行すると,
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc\docsingl.cpp
CSingleDocTemplate::SetDefaultTitle(CDocument* pDocument) の
ENSURE(strDocName.LoadString(AFX_IDS_UNTITLED));
プロジェクトのプロパティ,「リソース」-「プリプロセッサの定義」に “_AFXDLL;” があったので削除.
2021/02/17
VC 7 以降に変換した段階で,ソースの「プリプロセッサの定義」が引き継がれてしまう?
そのため,それは削除した方が良さそう.
* 間違ってプロジェクトの「プリプロセッサの定義」を削除しないこと.
VC 12 LNK1104 , VC 14.2 LNK2019
Is this 投稿 useful?
Useful
Useless
0 of 0 people say this 投稿 is useful.