相关疑难解决方法(0)

python可以从C头文件加载定义吗?

我正在围绕 C API 编写一个 python 包装器。我有一个广泛的 API 描述,现在我正在努力实现头文件中定义的枚举。

假设我内部有一个 C API 函数myAPI.dll,它接受一个枚举作为参数,例如:

void SomeFunction(SomeEnum data)
Run Code Online (Sandbox Code Playgroud)

从头文件中,我可以看到SomeEnum如下所示:

enum SomeEnum{
    SomeValue = 1,
    SomeOtherValue = 2,
    SomeVeryStupidValue = -1
};
Run Code Online (Sandbox Code Playgroud)

在 python 中,我加载.dll类似:

myAPI = ctypes.cdll.LoadLibrary('myAPI.dll')
Run Code Online (Sandbox Code Playgroud)

现在我希望能够调用:

myAPI.SomeFunction(SomeValue)
Run Code Online (Sandbox Code Playgroud)

我知道,我可以SomeValue在 python 中定义,但是直接从头文件加载它的定义或者直接将它作为myAPI. 这可能吗?

python ctypes header-files

6
推荐指数
2
解决办法
1045
查看次数

标签 统计

ctypes ×1

header-files ×1

python ×1