Visual c++ 如果删除USRDLL预处理器定义,会产生什么后果?

Visual c++ 如果删除USRDLL预处理器定义,会产生什么后果?,visual-c++,dll,mfc,Visual C++,Dll,Mfc,我是初学者!我尝试将共享MFC库与旧dll一起使用,但当我使用VC6编译它时,我得到了错误“LNK2005:_DllMain@12已定义”。 我找到了很多解释,但只是删除了“_USRDLL”,问题就消失了,dll也工作了。现在我对这次行动的后果有点困惑 此外,我在MSDN上读到,USRDLL对应于静态链接到MFC的常规DLL。那么,当我用VC6创建一个新的Win32动态链接库时,如果我在项目->设置->一般“在共享dll中使用MFC”或“不使用MFC”,为什么“\u USRDLL”已经存在? 对

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

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

带有MFC的常规DLL从来没有DllMain。 CWinApp对象涵盖了这一点

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

谢谢,但我已经读过TN033和TN011了。在我的DLL中没有DllMain,可能是其他东西导致了错误。也许是另一个我称之为的图书馆,但我没有找到哪一个。另一个问题是,如果我删除USRDLL预处理器定义,为什么一切都可以正常工作,如果我这样做,DLL中会发生什么变化。非常感谢您的帮助!;-)只需查看MFC标题。如果没有定义_USRDLL,那么很多代码就不会被编译或解题更改。只要看看标题。此外,链接器还被设置为包含不同的模块。