質問

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

です。

役に立ちましたか?

解決

それぞれの設定は構成プロパティ/一般、MFCの使用です。

DLLでMFCを使用する場合は、そのコンパイラオプションが/ d "_afxdll"である。 リンカオプションに関しては、Windowsのインポートライブラリの明示的なリンク(Kernel32.libなど)が削除されました。

Visual Studioはそれぞれのライブラリを自動的に見つけるようです。ただし、「MFCの使用」オプションはプロジェクトファイルとともに保存されているため、カスタムビルドスクリプトにどのように変換されるかは言えません。

最初に含まれている必要があります

#include <afx.h>
.

とその前にWindows.hを含めることはできません。通常、プリコンパイル済みヘッダーを使用している場合は、これがstdafx.hに最初に含まれます。それ以外の場合は、必要に応じて他のMFCヘッダーを自由に含めることができます。

これが物語の終わりであることを疑っているのは、MFCが何でも痛みを伴うこと、そして時にはあきらめるのが簡単です。。

他のヒント

well、あなたはすでにこれを知っています、ちょうどそれをより明確にするだけです:

.proファイル追加: += ib_use_std_string

を定義します

MFC CSTRING

を使用しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top