查看: 67|回覆: 0

python调用易语言编写的dll文件

[複製鏈接]

3

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-2-25
發表於 2019-5-14 14:08:00 | 顯示全部樓層 |閲讀模式
 目前易语言编写的dll文件都是32位的dll,所以必须用32位的python去调用。
    32位的dll必须用32位的python调用,64位的dll必须用64位的python调用。
原因如下:
    在64位的windows系统中,一个64位进程不能加载一个32位dll,同理一个32位进程也不能加载一个64位dll。
可用解决办法:
     64位windows支持64位和32位进程(包括本机或跨机)间进程间通信(RPC)。在64位windows中,一个进程外32位COM服务器能够与64位客户端进行通信,同样一个进程外64位COM服务器也能与32位客户端进行通信。因此,如果你有一个32位COM无法识别的DLL,你可以将它封装到一个进程外COM服务器中并在一个64位进程中用COM配置调用DLL。
 
 
废话不多说,直接上干货:
    我建了一个简单的易语言动态链接库程序,代码如下:
可见只有一个函数,并且返回了一串字符。接下来我们编译生成一个dll文件用python去调用它。
 
由于我编译的是32位的dll文件,因此我用32位的python去调用它,如下图:
可以看到txt是二进制数据,接下来对其解码。
发现utf8解码会报错,我们再用gbk试试。
发现成功收到数据,是不是很简单。
 
 
注:python执行dll文件中的函数默认返回为整数型(int),除了string_at外,从types的类型还有:


来源:https://www.cnblogs.com/DonCharles/p/10861860.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部