2013-03-21 32 views
2

我试图从基于MFC的应用程序移植某个功能。显然我没有使用MFC的经验。我感兴趣的类从CAsyncSocket继承。在MSDN上查看该课程时,它指出该课程源自afxsock.h。当我补充说,我的控制台应用程序代码,我这是将MFC从MFC移植到C++控制台应用程序。使用/ MD [d](CRT dll版本)构建MFC应用程序需要

Error 1 error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] d:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h 

对我怎么能解决这个问题的任何建议,以下错误消息?

回答

8

为了使用任何MFC的东西,你需要链接你的程序与MFC。最简单的方法是通过项目属性。打开你的项目属性并转到“常规”。选择那里“使用MFC”或者“在静态库中使用MFC”或“在共享DLL中使用MFC”。尝试重新构建您的程序。您可能需要在此之后调整其他选项

+0

谢谢您能告诉我两者之间的区别吗? – Rajeshwar 2013-03-21 01:31:47

+0

如果您选择后者,则需要使用应用程序分发MFC(通过安装程序)。如果您选择前一个选项,程序二进制文件的大小将会变大,但您不需要分发任何dll。它可以在任何PC上运行 – cha 2013-03-21 01:34:55

相关问题