我有一个MFC .exe应用程序,我为一个动态链接到它的MFC创建了另一个项目。
现在,当我通过LoadLibrary导入该DLL时,它会导致我的应用程序崩溃,因为导入完成后,DLL会调用AfxWinInit()
。
DLL应该调用AfxWinInit()
吗?我该如何避免呢?或者是其他错误?
答案 0 :(得分:3)
在您的MFC应用程序中WinMain()
调用AfxWinMain().
在AfxWinInit()
的开头调用AfxWinMain().
因此初始化是由框架为您完成的。无需再次初始化它。
MFC DLL提供了自己的入口点,所以你不应该自己写一个。如果您打算编写一个支持MFC的DLL,我建议您从应用程序向导创建的新MFC DLL开始,然后将代码移到那里。
对于加载扩展DLL的MFC应用程序,请使用AfxLoadLibrary
而不是LoadLibrary
。