在非MFC应用程序中链接MFC dll

时间:2016-03-08 06:12:13

标签: c++ visual-studio mfc linker

我需要在非MFC应用程序中调用MFC DLL方法(使用标准Windows库)。我正在接受

  

"包括&#st;; stdafx.h'在将此文件包含在PCH"之前

错误。我已将stdafx.h包含在所有标头和cpp文件中。没运气。在非MFC应用程序中调用MFC DLL的过程是什么?

2 个答案:

答案 0 :(得分:0)

这个错误无关,有DLL问题。或者使用与另一个项目共享DLL中的代码的方式。

您设置了一个使用预编译标头的项目。为每个项目单独设置预编译头文件。你永远不应该在项目之间共享这样的文件。

在没有外部DLL引用的情况下设置它编译的项目。 如果它编译添加外部DLL接口的头文件(仅此而已),请将LIB文件添加到链接器选项(或使用#pragma comment(lib,..))。

再一次:你的主要问题是你没有理解预编译的标题,快速尝试你可以完全转变它。但是我认为你分享项目文件的方式有点混乱"。

答案 1 :(得分:0)

方法1:

您可以检查非mfc应用程序中的项目属性,以不使用预编译头。

即项目属性->配置属性-> C / C ++->预编译头,并将预编译头属性设置为“不使用预编译头”(如果您在Visual Studio中)。相当于在编译时删除'/ Yu'标志。

方法2: 确保在非mfc应用程序中也使用预编译标头。

即创建一个预编译的头文件(可以是任何名称,在此处为stdafx.h),并根据需要配置上述属性。 .h的属性应为/ Yc。