5

私は初心者です!古い dll で共有 MFC ライブラリを使用しようとしましたが、VC6 でコンパイルすると、「LNK2005: _DllMain@12 は既に定義されています」というエラーが表示されます。非常に多くの説明が見つかりましたが、「_USRDLL」を削除するだけで問題がなくなり、dll が機能します。今、私はこの行動の結果について少し混乱しています。

さらに、USRDLL は MFC に静的にリンクする通常の DLL に対応することを MSDN で読みました。では、VC6 で新しい Win32 ダイナミック リンク ライブラリを作成するときに、[プロジェクト] -> [設定] -> [一般] で [共有 dll で MFC を使用する] または [MFC を使用しない] を選択すると、[_USRDLL] が既に存在するのはなぜですか? 私の悪い英語で申し訳ありませんが、助けてくれてありがとう!

4

1 に答える 1

3

MFC を使用する通常の DLL には、DllMain はありません。これは、CWinApp オブジェクトによってカバーされます。

拡張 DLL だけが DllMAin を持っています。TN033を読んでください。この場合、_USRDLL を定義する必要があります。

于 2013-09-26T19:36:12.933 に答える