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

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

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

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

我正在使用vs2010。

所讨论的lib是交互式代理API

有帮助吗?

解决方案

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

在DLL中使用MFC时,从该编译器选项默示出来的“_AFXDLL”。 至于链接器选项,善意显式链接Windows导入库(例如kernel32.lib)被删除。

Visual Studio似乎自动找到各个库。但是,“使用MFC”选项与项目文件一起存储,因此我不能说如何转换为自定义构建脚本。

第一个包括必须

#include <afx.h>
.

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

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

其他提示

好吧,你已经知道这个,只是让它更清楚:

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

避免使用mfc cstring

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top