对Python能够调用天下语言一直有所耳闻,今天试试能不能调用易语言,虽说不能调用.e文件,但至少易语言生成的dll文件应该问题不大。接下来就开始调用。
被调用的易语言dll:
.版本 2
.子程序 get_disk_info, 文本型, 公开
.参数 disk_name, 文本型
.局部变量 used_space, 长整数型
.局部变量 use_space, 长整数型
.局部变量 total_space, 长整数型
.局部变量 return_str, 文本型
系统_取磁盘大小信息 (disk_name, used_space, use_space, total_space)
' 输出调试文本 (used_space ÷ 1024, use_space ÷ 1024, total_space ÷ 1024)
return_str = 到文本 (四舍五入 (use_space ÷ 1024, 1))
返回 (return_str)
Python所用到的库:
os;sys;ctypes;
import sys,os
from ctypes import *
def get_disk_info(disk):
# 添加dll的搜索路径为当前目录
os.add_dll_directory(sys.path[0])
# 创建dll对象
dll = CDLL('disk.dll')
# 易语言传参是文本型,这里需要编码为utf-8
disk = c_char_p(disk.encode('utf-8'))
# 返回值是文本型
info = string_at(dll.get_disk_info(disk))
return info #96.8
如果不添加dll搜索路径就会报错:
FileNotFoundError: Could not find module 'disk.dll'. Try using the full path with constructor syntax.