※ ChatGPTを利用し、要約された質問です(原文:VC++でのリンクエラー [error LNK2005])
VC++でのリンクエラー [error LNK2005]
VC++でのリンクエラー [error LNK2005]
VC++でMFCを使用してダイアログベースのEXEを
作成しています。
以下のクラスのメンバ関数などを使用して、色の操作をしています。
CDC::SetBkColor()
CDC::SetTextColor()
ビルド時、以下のリンクエラーとなりました。
----------------------------------------------
nafxcw.lib(afxmem.obj) : error LNK2005:
"void __cdecl operator delete(void *)"
(??3@YAXPAX@Z) はすでに LIBCMT.lib(delete.obj) で
定義されています
Release/MenueTest.exe : fatal error LNK1169: 1 つ
以上の複数回定義されているシンボルが見つかりました
link.exe の実行エラー
----------------------------------------------
MFC と C(?)のライブラリで delete()関数が競合しているようですが、これを回避する方法をご存知の方、ご教授願います。
<環境>
OS:Windows2000
VC++6.0
<備考>
リンクエラーになるのは以下の組み合わせです。
「MFCをスタティックリンクする+リリース版」
MFCをスタティックリンクしてもデバッグ版のビルドだとエラーになりません。
また、MFCをスタティックリンクしない場合もエラーにはなりません。
ただし、リンクエラーにならなかった場合、どちらのオブジェクトの delete()関数が呼ばれるか不明で、それが正しいのかも心配です。
お礼
ありがとうございました。 無事解決できました。