我有一个Qt项目,并希望使用一个包含“afxstr.h”的外部库.
问题是,每当我编译链接到lib并包含他们的头后,我得到一个错误:
问题是,每当我编译链接到lib并包含他们的头后,我得到一个错误:
#error afxstr.h can only be used in MFC projects. Use atlstr.h
当然,我的项目不是一个MFC项目,我不能使用atlstr.h,因为它不是我的库.
我在使用VS2010.
这个lib是Interactive Brokers API.
解决方法
各自的设置是配置属性/常规,使用MFC.
在DLL中使用MFC时,从/ D“_AFXDLL”中隐含的编译器选项.
对于链接器选项,奇怪的是,显式链接的Windows导入库(如kernel32.lib)被删除.
Visual Studio似乎自动找到相应的库.但是,“使用MFC”选项与项目文件一起存储,所以我无法说明如何转换为自定义构建脚本.
第一个包括必须是
#include <afx.h>
在此之前您不能包含windows.h.通常,如果您使用预编译头,那么这是stdafx.h中的第一个包含.除此之外,其他MFC头可以根据需要自由包含.
我怀疑这是故事的结尾,让MFC玩任何东西都是痛苦的,有时它更容易放弃:)一个快速的谷歌显示有解决方案,但它们涉及额外的代码,而且相当老.