ホーム » 2014 » 6月 » 06

日別アーカイブ: 2014/06/06

2014年6月
1234567
891011121314
15161718192021
22232425262728
2930  

カテゴリー

アーカイブ

ブログ統計情報

  • 99,397 アクセス


MFC DLL → Static – 2

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 8 「ソース」のプリプロセッサの定義
* 間違ってプロジェクトの「プリプロセッサの定義」を削除しないこと.
VC 12 LNK1104 , VC 14.2 LNK2019

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.