1

VS2005 プロジェクトを VS2010 に変換しましたが、2010 への変換で導入された LNK2005 エラーに困惑しています。

3> C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\lib\nafxcwd.lib を検索:
3>nafxcwd.lib(viewcmn.obj): エラー LNK2005: "保護: 仮想構造体 AFX_MSGMAP const * __thiscall CListView::GetMessageMap(void)const " (?GetMessageMap@CListView@@MBEPBUAFX_MSGMAP@@XZ)
  uafxcwd.lib(viewcmn.obj) で定義済み

私はさまざまな原因について詳しく読み、debug\release およびランタイム ライブラリに加えて (私が信じている) CRT ライブラリの前の MFC リンクに関してすべてのライブラリが一貫していることを確認しました (2010 に変換した後にこれらが変更されるとは思っていませんでしたが)。

問題は、プロジェクトが Unicode ライブラリを非 Unicode ライブラリにリンクしていることだと思いますか? 出力は、「nafxcwd.lib」のメソッドが「uafxcwd.lib」で既に定義されていることを示しています。これが本当に問題である場合、2010 に変換した後に導入された理由と、安全な解決策は何ですか? ライブラリの 1 つを無視するのは少し気が進まないので、実行時に最高の結果が得られることを願っています。Unicode ライブラリは Unicode のままにする必要があり、非 Unicode ライブラリは非 Unicode のままにする必要があります。2005 年には問題ありませんでしたが、2010 年には問題がありました。

助言がありますか?

4

0 に答える 0