向 Qt 项目添加 MFC 支持

Adding MFC support to a Qt project

本文关键字:MFC 支持 添加 项目 Qt      更新时间:2023-10-16

我有一个Qt项目,想使用一个包含"afxstr.h"的外部库。问题是每当我在链接到库并包含它们的标头后进行编译时,都会收到错误:

#error afxstr.h can only be used in MFC projects.  Use atlstr.h

当然,我的项目不是 MFC 项目,我不能使用 atlstr.h,因为它不是我的库。

我正在寻找一个快速的解决方案!

我正在使用VS2010。

有问题的库是盈透证券API。

相应的设置是配置属性/常规,MFC 的使用。

在 DLL 中使用 MFC 时,隐含的编译器选项是/D "_AFXDLL"。至于链接器选项,奇怪的是,Windows导入库(如kernel32.lib(的显式链接被删除了。

Visual Studio似乎会自动找到相应的库。但是,"使用 MFC"选项与项目文件一起存储,所以我不能说它如何转换为自定义构建脚本。

第一个包含必须是

#include <afx.h>

并且您不能在此之前包含Windows.h。通常,如果使用预编译标头,这是 stdafx.h 中的第一个包含。除此之外,可以根据需要自由包含其他 MFC 标头。

我怀疑这是故事的结局,让MFC玩任何东西都是痛苦的,有时更容易放弃:)快速谷歌显示有解决方案,但它们涉及额外的代码并且相当陈旧。

好吧,你已经知道这一点,只是说得更清楚:

.pro 文件添加:定义 += IB_USE_STD_STRING

避免使用 MFC CString