Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将.lib文件中定义的c类型导入python_Python_C_Ctypes_Cpython_.lib - Fatal编程技术网

将.lib文件中定义的c类型导入python

将.lib文件中定义的c类型导入python,python,c,ctypes,cpython,.lib,Python,C,Ctypes,Cpython,.lib,我有一个第三方C静态库(.lib),我想使用python利用它,提供的头包含一些数据结构的函数和声明的原型,但它也使用头中未定义的一些数据类型 “header.h”中的示例 句柄数据类型在标头中不可访问,有些函数将此数据类型用作参数或返回值 如何从Python函数导出要使用的数据类型“句柄” 有没有直接处理“R_HANDLE”的方法 rem:对于经典结构和c数据类型,我使用Python CookBook的方法,使用ctypes 谢谢ctypes只能利用动态库(.dll,.dylib,.so等)。

我有一个第三方C静态库(.lib),我想使用python利用它,提供的头包含一些数据结构的函数和声明的原型,但它也使用头中未定义的一些数据类型

“header.h”中的示例

句柄数据类型在标头中不可访问,有些函数将此数据类型用作参数或返回值

如何从Python函数导出要使用的数据类型“句柄”

有没有直接处理“R_HANDLE”的方法

rem:对于经典结构和c数据类型,我使用Python CookBook的方法,使用ctypes


谢谢

ctypes
只能利用动态库(
.dll
.dylib
.so
等)。对于其他数据类型,
ctypesgen
是一个很好的方法。
ctypes.wintypes
包括
句柄
。但是,如果它是一个静态库,那么它必须与DLL或EXE静态链接,因此您必须编写一个使用该库的DLL,然后从Python调用它。在Python中使用句柄时,您打算如何处理它?下面是一个函数的示例,该函数将句柄*作为参数
RESULT OpenW(int set,int32_t wxtimeout,HANDLE*HANDLE)
,@BrianCain我发现有一个可用的dllIf,如果它使用的是Windows
句柄
,则头必须包含Windows.h,或者winbase.h或winnt.h。
typedef
来自一些包含的源文件。如前所述,
ctypes.wintypes
模块具有Windows类型别名和一些常见结构。它还远未完成,但它确实有常见的句柄类型,它们都只是空指针。
typedef HANDLE            R_HANDLE;