使用ctypes从DLL导入#define,常量和typedef

时间:2014-03-24 21:11:21

标签: python dll ctypes

我从我买的一块板上做了一些DLL来做一些东西,它定义了一些函数,常量和类型。我已经使用ctypes将其成功导入Python。但是,从这个导入我无法访问定义的常量。例如,如果我需要调用函数:

myDLL = ctypes.cdll.LoadLibrary("path/to/dll/parrot.dll")

spam = myDll.eggs(THIS_CONSTANT) #THIS_CONSTANT is defined in the DLL
然后我不能这样做。 有没有办法访问这些常量?

2 个答案:

答案 0 :(得分:2)

#define肯定无法从 访问DLL。实际上,即使在编译器开始工作之前,它们的定义也会被预处理器扩展。因此,DLL无法记住定义它的名称。

答案 1 :(得分:0)

您需要将头文件转换为等效的Python ctypes代码。这可以手动完成,也可以使用工具自动完成部分或全部转换。