在非 MFC 应用程序中链接 MFC dll
Linking a MFC dll in a non MFC application
我需要在非MFC应用程序中调用MFC DLL方法(使用标准Windows库)。我得到了一个
"在为 PCH 包含此文件之前包含'stdafx.h'"
错误。我已经将stdafx.h包含在我所有的头文件和cpp文件中。没有运气。在非 MFC 应用程序中调用 MFC DLL 的过程是什么?
此错误与
DLL问题无关。或者使用与另一个项目共享 DLL 中的代码的方法。
设置使用预编译标头的项目。为每个项目单独设置预编译标头。切勿在项目之间共享此类文件。
设置在没有外部 DLL 引用的情况下编译的项目。如果它编译添加外部 DLL 接口的头文件(仅此而已),请将 LIB 文件添加到链接器选项(或使用 #pragma 注释 (lib,..))。
再次:你的主要问题是你不理解预编译的头,为了快速尝试,你可以完全打开它。但我想你分享项目文件的方式有点"混乱"。
方法 1:
您可以在非 mfc 应用程序中检查项目属性,使其不使用预编译标头。
即项目属性->配置属性->C/C++->预编译标头,并将预编译标头属性设置为"不使用预编译标头"(如果您在视觉工作室中)。这相当于在编译时删除了"/Yu"标志。
方法2:确保在非 mfc 应用中也使用预编译标头。
即创建一个预编译的标头(可以是任何名称,此处为 stdafx.h)并根据需要配置上述属性。.h 的属性应为/Yc。
相关文章:
- 在 MFC dll 中包含助推互斥头文件时断言
- MFC/DLL中缺少ATL :: CSTRINGT功能,该功能与Clang/vs-2019构建
- 如何初始化堆,以便静态构造函数可以在常规 MFC dll 中使用堆?
- 如何从MFC DLL中获取与COM包裹的C#对象的接口
- 使用P/Invoke从MFC DLL函数中读取VB.NET中的结构化数据
- 创建非托管常规 MFC DLL 并从托管 C++ .NET 应用调用它时出现问题
- 在 MFC DLL 中的 CDialog 派生对象中使用 CScrollView 派生对象
- 命令和UPDATE_COMMAND_UI处理程序未在 MFC dll 中调用
- 带有API的WinRT应用程序,该应用程序使用共享的MFC dll
- zmq_ctx_destroy() 在 MFC dll 中挂起
- 无法在其他计算机上注册C++MFC dll
- 在非 MFC 应用程序中链接 MFC dll
- LNK2019错误一个DLL链接到MFC DLL
- 在MFC dll中使用cef
- 使用公共语言运行时支持(/clr)调用mfc dll时,未能运行mfc应用程序
- 无法获取要在.net中运行的MFC dll函数
- Rewrite MFC DLL with C#?
- GUI harness for MFC DLL?
- 无法从 MFC DLL 创建模式对话框
- 显示MFC DLL中的对话框