使用 SDK,他们的 header 文件使用不命名类型的 typedef

Using an SDK, their header files are using typedefs that do not name a type

我正在使用指纹扫描仪的 SDK,并且我已将他们所有的 header 文件添加到我的项目中。在 header 文件中,他们使用了大量似乎不起作用的 typedef。我正在使用 Eclipse,想知道这是否是问题所在。

例如:

#ifdef WIN32
typedef __int8    SecuAPI_SINT8;
typedef __int16   SecuAPI_SINT16;
typedef int       SecuAPI_SINT32;
typedef __int64   SecuAPI_SINT64;

typedef BYTE    SecuAPI_UINT8    ;
typedef WORD    SecuAPI_UINT16   ;
typedef DWORD     SecuAPI_UINT32;   

BYTE、WORD、DWORD 抛出错误不命名类型。

其他好像还好。我尝试添加 winDef.h 和 windows.h header,但似乎没有用。

再往下看代码

typedef BOOL      SecuAPI_BOOL;
typedef CHAR      SecuAPI_CHAR;
typedef LPSTR     SecuAPI_CHAR_PTR;    

同样报错。

其他 typdef,例如 char、short、int 等似乎都可以工作。

编辑: 我是 C 的新手,所以我不知道为什么,但我将他们的 header 文件复制并粘贴到新的 header 文件中(因为它不允许我编辑他们的文件)和 BOOL, BYTE, WORD 类型现在可以了,但是 __int8, __int16, etc. 没有用。我添加了 <stdint.h>,现在一切正常。

谢谢大家!

BOOLCHARLPSTR 和类似的 entirely-capitalized-types(通常)是 Microsoft-defined types。文档说明需要 headers 才能获得正确的定义。