5

我是初学者!我尝试使用带有旧 dll 的共享 MFC 库,但是当我使用 VC6 编译它时,我收到错误“LNK2005:_DllMain@12 已定义”。我找到了很多解释,但只删除“_USRDLL”问题就消失了,dll 工作。现在我对这个行动的后果有点困惑。

此外,我在 MSDN 上读到 USRDLL 对应于静态链接到 MFC 的常规 DLL。那么,当我使用 VC6 创建一个新的 Win32 动态链接库时,如果我在 Project->Setting->General 中选择“在共享 dll 中使用 MFC”或“不使用 MFC”,为什么“_USRDLL”已经存在?对不起我的英语不好,谢谢你的帮助!

4

1 回答 1

3

带有 MFC 的常规 DLL 永远不会有 DllMain。这由 CWinApp 对象覆盖。

只有扩展 DLL 具有 DllMAin。阅读TN033。在这种情况下必须定义_USRDLL!

于 2013-09-26T19:36:12.933 回答