1

我显然做错了什么,必须有一个简单的解决方案。我有一个 USB 设备,我正在尝试与之交谈,它使用 FTDI USB 到 RS232 转换器。它们提供驱动程序库 (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 回答