我正在围绕一个C API编写一个python包装器。我有一个广泛的API描述,现在我正在努力实现在头文件中定义的枚举。你知道吗
假设在myAPI.dll
中有一个C API函数,它接受枚举作为参数,如下所示:
void SomeFunction(SomeEnum data)
从头文件中,我可以看到SomeEnum
看起来像:
enum SomeEnum{
SomeValue = 1,
SomeOtherValue = 2,
SomeVeryStupidValue = -1
};
在python中,我加载.dll
如下:
myAPI = ctypes.cdll.LoadLibrary('myAPI.dll')
现在我想打电话:
myAPI.SomeFunction(SomeValue)
我知道,我可以在python中定义SomeValue
,但是直接从头文件加载它的定义或者直接将它作为myAPI
的一个属性是很方便的。这可能吗?你知道吗
这是可能的。几年前我编写了一个工具,用pyparsing扫描一个文件,用于C++ ^ {< CD1> }语法。现在我在这里复制了一个pyparsing example,以防链接发生变化。正如你所看到的,文件不必是完全有效的C++。它定义
enum
语法并扫描文件中与语法匹配的文本,生成Python变量。你知道吗输出:
相关问题 更多 >
编程相关推荐