gpt4 book ai didi

visual-c++ - 如果我删除 _USRDLL 预处理器定义会产生什么后果?

转载 作者:行者123 更新时间:2023-12-02 01:57:42 28 4
gpt4 key购买 nike

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

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

最佳答案

带有 MFC 的常规 DLL 从不具有 DllMain。
这由 CWinApp 对象涵盖。

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

关于visual-c++ - 如果我删除 _USRDLL 预处理器定义会产生什么后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19031078/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com