11

Qtプロジェクトがあり、「afxstr.h」を含む外部ライブラリを使用したいと思います。問題は、libにリンクし、それらのヘッダーを含めた後にコンパイルするたびに、エラーが発生することです。

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

もちろん、私のプロジェクトはMFCプロジェクトではなく、ライブラリではないため、代わりにatlstr.hを使用することはできません。

私は迅速な解決策を探しています!

VS2010を使用しています。

問題のlibはInteractiveBrokersAPIです。

4

2 に答える 2

4

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

DLLでMFCを使用する場合、そこから暗黙的に示されるコンパイラオプションは/D"_AFXDLL"です。リンカオプションに関しては、不思議なことに、Windowsインポートライブラリ(kernel32.libなど)の明示的なリンクが削除されます。

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

最初のインクルードは

#include <afx.h>

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

これで話は終わりではないかと思います。MFCに何かを試してもらうのは苦痛であり、時にはあきらめるほうが簡単です:)簡単なグーグルで解決策があることがわかりますが、追加のコードが必要で、かなり古いものです。

于 2012-06-07T09:50:03.340 に答える
1

さて、あなたはすでにこれを知っています、ただそれをより明確にしてください:

.proファイルの追加:DEFINES + = IB_USE_STD_STRING

MFCCStringの使用は避けてください

于 2012-10-16T10:02:13.190 に答える