我是初学者!我尝试将共享的MFC库与旧的dll一起使用,但是当我使用VC6对其进行编译时,出现错误“ LNK2005:_DllMain @ 12已经定义”。我发现了很多解释,但是仅删除“ _USRDLL”,问题消失了,dll正常工作了。现在,我对该操作的后果感到困惑。
另外,我在MSDN上读到USRDLL对应于静态链接到MFC的常规DLL。因此,当我用VC6创建一个新的Win32动态链接库时,如果在“项目”->“设置”->“在共享的dll中使用MFC”或“不使用MFC”中进行选择,为什么“ _USRDLL”已经存在?对不起,我的英语不好,谢谢您的帮助!
带有MFC的常规DLL从来没有DllMain。这由CWinApp对象覆盖。
仅扩展DLL具有DllMAin。读取TN033。在这种情况下,必须定义_USRDLL!