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
运行截图如下: