dll中getColorName对应的定义声明如下:
因为Python中没有char这种数据,所以直接用会有如下的问题:
源码如下:
- import ctypes
-
- if __name__=='__main__':
- ll=ctypes.cdll.LoadLibrary
- lib=ll("judgeColor.dll")
- print(lib.getColorName("red.png"))
问题如下:
使用如下的方式,改变为byte在传入给dll,接收时调用string_at,转成string。
源码如下:
- import ctypes
-
- if __name__=='__main__':
- ll=ctypes.cdll.LoadLibrary
- lib =ll("judgeColor.dll")
- charPointer=bytes("black.png","gbk")
- result=lib.getColorName(charPointer)
- pyResult=ctypes.string_at(result);
- print(pyResult.decode("gbk"))
- pass
运行截图如下: