我有一个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。
答案 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