nRst = dll.EnumWdDevPath(a,b)//如何把b的值打印出来???

nRst = dll.EnumWdDevPath(a,b)//如何把b的值打印出来???

三月梨花 发布于 2021-11-27 字数 898 浏览 812 回复 1

请教python 调用DLL函数的问题。DLL中函数声明如下:

BOOL WINAPI EnumWdDevPath(UCHAR * nDevNum,char DevPath[32][128]),这是个枚举设备的函数,在Python中,我调用的时候应该如何取出返回的参数值呢?

from ctypes import *

def create_char_table(n, m):

    ret = (c_char_p * n)()

    for i in range(n):

        ret[i] = addressof((c_char * m)())

    return ret

#加载API库

dll = windll.LoadLibrary( 'wdkmgr.dll' )

DevNum=c_ubyte(0)

DevPath = create_char_table(32,128)

a= pointer(DevNum)

b= byref(DevPath)


nRst = dll.EnumWdDevPath(a,b)//如何把b的值打印出来???

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

输什么也不输骨气 2021-11-30 1 楼

把指针代码的变量转成数字 拿到ANSI就拿到盘符了 A-Z