我正在尝试将C主程序写入dll,Python将从此dll导入所有内容(包括所有变量和函数),并运行dll中定义的函数。但是,我打算不仅将函数导出,而且还要将变量从DLL导出到Python。 我理解如何使用DLL向Python公开函数,但我不确定如何使用Python中的Ctype从dll访问变量。
我们举一个例子: 如果在标题内,我们有#DEFINE MAXDEVNUMBER 4。 当我使用ctype print mydll.MAXDENUMBER时,它给我一个错误。函数'MAXDENUM'未找到
答案 0 :(得分:3)
您无法访问预处理器宏,因为它们不是从DLL导出的。您只能访问导出的C函数和全局变量。
例如, test.c :
>>> from ctypes import *
>>> dll = CDLL('test')
>>> dll.func(1)
6
>>> x=c_int.in_dll(dll,'b') # access the global variable
>>> x.value
5
>>> x.value = 6 # change it
>>> dll.func(1)
7
{{1}}