将MFC支持添加到Qt项目

时间:2012-05-22 20:26:39

标签: c++ qt mfc atl algorithmic-trading

我有一个Qt项目,并希望使用包含“afxstr.h”的外部库。 问题是,每当我在链接到lib并包含其标题后编译时,我都会收到错误:

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

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

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

我正在使用VS2010。

有问题的lib是Interactive Brokers API

2 个答案:

答案 0 :(得分:4)

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

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

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

第一个必须是

#include <afx.h>

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

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

答案 1 :(得分:1)

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

.pro文件添加: DEFINES + = IB_USE_STD_STRING

避免使用MFC CString