使用 SDK,其头文件使用不命名类型的类型定义

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

本文关键字:类型 定义 SDK 文件 使用      更新时间:2023-10-16

我正在使用SDK进行指纹扫描仪,并且已将其所有头文件添加到我的项目中。在头文件中,他们使用了很多似乎不起作用的 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;   

字节、字、双字抛出错误不命名类型。

其他人似乎还可以。我尝试添加winDef.h和windows.h标头,但这似乎不起作用。

代码再往下走

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

同时抛出相同的错误。

其他类型,如char,short,int等似乎有效。

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

谢谢大家!

BOOLCHARLPSTR和类似的全大写类型(通常)是Microsoft定义的类型。文档指出了需要哪些标头才能获得正确的定义。