1

どうやら本当に間違ったことをしたようで、簡単な解決策があるはずです。FTDI USB から RS232 へのコンバーターを使用する USB デバイスと通信しようとしています。プログラミング インターフェイスとして、ドライバー ライブラリ (ftd2xx.dll) とヘッダー ファイル (ftd2xx.h) を提供します。QtCreator で単純なプロジェクトを作成しましたが、この時点では何もしません。コンパイルして正常に実行されます。ただし、ftd2xx.h をインクルードするとすぐに、多数のエラーが発生します。例えば:

typedef PVOID  FT_HANDLE;
typedef ULONG  FT_STATUS;
typedef void (*PFT_EVENT_HANDLER)(DWORD,DWORD);
WORD VendorId;

これらの行、およびそれに類似した多くの行により、次のエラーが発生します。

‘PVOID’ does not name a type
‘ULONG’ does not name a type
Typedef ‘PFT_EVENT_HANDLER’ is initialized (use decltype instead)
‘WORD’ does not name a type

ここからどこへ行けばいいのかわからない。FTDI サポートに問い合わせたところ、問題の原因となっているヘッダー ファイルは ftd2xx.h だけであるとのことでした。ここで何かを見落としています。

4

1 に答える 1

2

次のことを行う必要があります。

#include <Windows.h> // comes first
#include "ftd2xx.h" // comes *after* Windows.h

FTDI インクルード ファイルは、windows の種類に依存しているにもかかわらず、windows ヘッダーを適切にインクルードしないため、壊れています。代わりに、自分で行う必要があります。

于 2014-03-03T22:54:24.630 に答える