Python工作笔记-往dll中传入char*类型的参数并且如何接收char*的值

dll中getColorName对应的定义声明如下:

Python工作笔记-往dll中传入char*类型的参数并且如何接收char*的值_第1张图片

 

因为Python中没有char这种数据,所以直接用会有如下的问题:

源码如下:

import ctypes

if __name__=='__main__':
	ll=ctypes.cdll.LoadLibrary
	lib=ll("judgeColor.dll")
	print(lib.getColorName("red.png"))

问题如下:

Python工作笔记-往dll中传入char*类型的参数并且如何接收char*的值_第2张图片

 

使用如下的方式,改变为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

运行截图如下:

Python工作笔记-往dll中传入char*类型的参数并且如何接收char*的值_第3张图片

你可能感兴趣的:(Python,工作笔记)