由于找不到python37.dll,python376安装教程
先贴停工截图。
的具体函数定义如下
//获取二维码
//参数
//对象接口指针对象
//结果二级指针,返回字符串的执行结果和执行结果。
int WINAPI getqr code(void * * object,char * * result);
我的python代码
#先前的代码被忽略。wx_user已经创建,没有问题。
缓冲区=创建字符串缓冲区(3000)
结果=lib。GetQRCode(wx_user,buffer)
# result=lib。GetQRCode(wx_user,指针(缓冲区))
# result=lib。GetQRCode(wx_user,addressof(buffer))
因为传入的第二个参数是可写的,所以创建了一个可写的缓冲区,希望dll把字符串写到这个指针所指向的内存中,然后我通过python把它读出来,这样就可以传出来一个字符串,而不是返回值。
但是我尝试了很多方法,包括代码中的三种,以及设置参数和返回值类型的方式,这些都会导致python在编写时停止运行。
查询异常代码,可能是写内存时的问题导致的(越界或其他错误)。
但是这种创建buffer的方法在官方文档中是有的,只有这个函数可以创建可写内存。
我还找到了用其他语言调用这个函数的方法。C#是一个整数值的直接输入。经过调试,我可以看到它应该是一个整数形式的内存地址。易语言是一个整型变量的地址。这两种方法都可以成功调用。我也用python模拟了两个方法,但是都不能成功调用。
所以想问问有没有用ctypes量的大佬,帮我看看。谢谢您们。
附:dll只有api文档,没有源代码,只能通过文档调用。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。