目前易语言编写的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的类型还有: