吾爱分享资源网

 找回密码
 立即注册
外汇指标、EA分享网
查看: 208|回复: 5

[易语言] 易语言如何编程第十八章模块的编写及DLL的调用

  [复制链接]

1169

主题

1256

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10292
发表于 2017-10-14 13:17:10 | 显示全部楼层 |阅读模式
                                                                 第十八章模块的编写及DLL的调用
动态链接库是 Windows 系统重要的组成部分,是在运行时才进行连接并能共享的函数库
一.DLL基础
18.1.1DLL概述
动态链接库(Dynamic Link Libray DLL)是一个包含共享函数的二进制库文件.可以同时被多个应用程序使用,当执行应用程序时,动态链接库并不是立即被装载到系统内存中,只是在需要时进行动态装载,并实现与应用程序的链接
当应用程序调用 DLL 时候,DLL 被装载到内存中,操作系统会自动在以下位置查找 DLL
1.应用程序所在目录
2.Windows 系统目录
3.Windows 目录
4.系统环境变量(PATH等)中指定目录寻找
如果找不到 DLL,程序运行就会出错.
18.1.2DLL特点
DLL 的用途广泛,并且有许多特点
1.动态链接
2.代码的封装
3.功能模块化
4.底层访问
5.语言无关与通用性
二.易语言编写 DLL
易语言支持对 动态链接库 的开发,编写的 DLL 是标准 DLL 文件,可以被其他语言所调用.
18.2.1建立 DLL
首先打开易语言 在弹出的 新建 窗口中选择 Windows 动态链接库

QQ截图20171014131347.png
点击确定按钮后,易语言进入易语言 IDE 中,我们现在就可以开始编写 DLL 文件了.
18.2.2编译 DLL
编写过程与前面提到的编写子程序类似,不过要提供一个对外接口,已被其他程序调用.我们拿出第七章时候讲解子程序的例子做下修改,将温度转换做成对外接口

QQ截图20171014131501.png
注:只有公开的子程序才能被外部程序调用.
然后我们将程序编译成 DLL 文件即可.
18.2.3DLL的调用
易语言编译的 DLL 与系统 DLL 调用方式相同 新建一个 EXE 程序 点插入菜单 DLL 命令

QQ截图20171014131559.png
输入我们刚刚写好的 DLL 对外接口名称和参数
然后就可以像调用子程序一样调用 DLL 了. 详细见 例 18-1-DLL.E 18-1-EXE.E
特别注意 DLL 子程序只接受一下类型数据
字节型、短整数型、整数型、长整数型、小数型、双精度小数型、逻辑型、日期时间型、子程序指针型
既然参数只接受数值型等,如果要传递文本参数咋办呢?
易语言考虑到了这个问题,所以提供了 3 个命令:“指针到文本”、“指针到字节集”、“写到内存”。
当用户传递的是文本型或者字节集型,易语言将自动转换成指针,我们可以使用“指针到文本”或“指针到字节集”把原来的文本返回出来
我们再来写个例子 用来传递文本字符串参数
[例 18-2] 我们做一个取文件 MD5 值的 DLL 让易语言来调用.
详见 18-2-DLL.E 18-2-EXE.E

QQ截图20171014131648.png
传递的文件参数是文件的路径,可是 DLL 参数只能是整型的.我们就设置成数值型然后用 指针到文本 命令来转换成文本地址.
我们把它编译成 DLL 文件 然后做个 EXE 插入对应的 DLL 命令

QQ截图20171014131722.png
Why?我们做的对外接口参数不是整数型吗?这里怎么设置成文本型了呢? 呵呵 这点其实不用管它 易语言编译环境会自动对这里进程转换处理的,程序做好后运行 怎样一切正常吧..
关于“指针到文本”、“指针到字节集”、“写到内存”这三个命令介绍可以查看下一章.
注意:易语言编写的 DLL 如果要在其他编程语言中使用,必须附带对应的易语言支持库。
三.易语言编写模块
模块的整体编写跟 DLL 文件类似不过模块只能让易语言使用而无法让其他语言使用,模块必须要包含的信息
1.模块必须要包含模块信息 设置方法 点程序菜单 配置 在弹出的配置窗口中输入模块信息 说明 作者等.
2.与 DLL 相同必须要包含对外接口 创建方法也与 DLL 文件对外接口相同
3.相比起来DLL 中参数只能是数值型,模块无任何其他限制,可以随便传递文本 字节集 自定义数据类型等.


下章预告:指针的介绍




上一篇:易语言如何编程第十七章OCX 组件应用和 Window API 的调用
下一篇:易语言如何编程第十九章指针的说明及应用

0

主题

186

帖子

384

积分

中级会员

Rank: 3Rank: 3

积分
384
发表于 2018-4-13 15:34:43 | 显示全部楼层
这个真的厉害了。

0

主题

210

帖子

444

积分

中级会员

Rank: 3Rank: 3

积分
444
发表于 2018-4-16 09:43:12 | 显示全部楼层
貌似很不错

0

主题

195

帖子

393

积分

中级会员

Rank: 3Rank: 3

积分
393
发表于 2018-5-21 21:33:19 | 显示全部楼层
好像还不错!

0

主题

186

帖子

380

积分

中级会员

Rank: 3Rank: 3

积分
380
发表于 2018-6-20 13:37:13 | 显示全部楼层
可以的~!

0

主题

183

帖子

394

积分

中级会员

Rank: 3Rank: 3

积分
394
发表于 2018-6-27 13:58:22 | 显示全部楼层
资源不错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|吾爱分享资源网 ( 苏ICP备17042175号 | 苏公网安备 32108102010177号 )

GMT+8, 2018-10-17 08:59 , Processed in 0.156944 second(s), 39 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表