吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14173|回复: 6
收起左侧

[易语言 转载] [转载]易语言DLL(动态链接库)开发教程

[复制链接]
hlrlqy 发表于 2014-4-7 17:44
易语言Dll开发手册一.关于易语言DLL
  从易语言3.6版开始,已经能够支持对DLL动态链接库的开发, 编译出的DLL是标准的DLL,和其他编程语言生成的标准DLL的调用方法相同。易语言编写出的DLL,在非独立编译exe时只需要DLL文件随应用程序一起发行,而独立编译exe时无需将DLL文件随应用程序一起发行。
二.新建易语言DLL程序
       新建一个易语言程序,然后选择 图标,易语言就会自动创建
出编写态连接库的代码区(程序集),如下图所示:
创建完毕就可以在代码区里编写DLL程序。
三.如何生成动态连接库(DLL)
       易语言中的DLL编写方法和易模块的编写方法类似,都需要有对外的公开接口。下面将通过编写一个“自创信息框”来看一下用易语言如何编写和调用DLL
编写DLL时的公开接口只能由以下方式生成,新建一个子程序,然后把“公开”选中,在DLL中任何程序集中选中“公开”的子程序都作为对外接口,如下图所示:
修改一下子程序名称,叫“自创信息框”,然后创建2个参数“标题”和“内容”,都定义成整数型,如下图所示:
   注意:目前DLL接口函数中的参数只能为以下9种之一:
    字节型、短整数型、整数型、长整数型、小数型、双精度小数型、逻辑型、日期时间型、子程序指针型
    定义好DLL参数后,我们可以创建新窗体作为信息框窗口,在新窗体上画一个按钮,一个标签,如下图所示:
    为了让用户按下确定按钮后,窗口能关闭,可以双击确定按钮,创建按钮“被单击”的触发事件,写入如下代码:
    然后返回到刚才的程序集1代码区开始编写代码。
由于2个参数都定义成了整数型,而调用的时候传递过来的标题和内容一定是文本型的,那么怎样去取得里面内容呢?别急,易语言3.6版中考虑到了这个问题,所以新增加了3个命令:“指针到文本”、“指针到字节集”、“写到内存”。
当用户传递的是文本型或者字节集型,易语言将自动转换成指针,我们可以使用“指针到文本”或“指针到字节集”把原来的文本返回出来。如下图所示:
到此已经完成“自创信息框DLL”所有工作,最后可以选择菜单“程序”→“编译”将其编译为DLL。如下图所示:
也可以使用快捷键“F7”编译刚刚编写的DLL,我们将编译以后的DLL名称命名为“自创信息框”,如下图所示:
通过以上,用易语言编写DLL的过程序基本完成。
四.如何使用DLL
用易语言编写的DLL可以在易语言自身调用,同样,也可以在其他编程语言中调用,如(VB,VC,Delphi等)
在易语言中的调用方法如下图所示:
注意:定义时,2个参数都定义成文本型
最后请在窗体上画一个按钮,双击按钮,写上代码调用这个DLL,按下按钮后,就会看到效果,如下图所示:
VB中调用方法如图:
注意事项:
注1:调用DLL时的Dll对应命令名必须和接口名称完全一样。
注2:接口函数的参数必须是基本数据类型,且不能为字节集型、文本型。
注3:易语言3.6版中新增加3个命令“指针到文本”、“指针到字节集”、“写到内存”,这3个命令最佳使用场合就是在易语言回调子程序和易语言DLL公开子程序用作获取外部数据。在Dll中使用文本参数的方法请参考“取汉字拼音.rar”程序
注4:易语言编写的DLL如果要在其他编程语言中使用,必须附带对应的易语言支持库。

例程名称
下载
说明
取汉字拼音取汉字拼音dll.e
取汉字拼音.dll
取汉字拼音.FRM
取汉字拼音测试.e


演示了如何用易语言写dll。



违规请版主大大删帖

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

w992482838 发表于 2014-4-7 17:46
抢沙发 呵呵    不懂但是 还是收藏以后再看      谢谢楼主
Gnod 发表于 2014-4-7 17:46
吾爱-路人甲 发表于 2014-4-7 18:20
花不开但要富贵 发表于 2014-4-7 18:23
请问图呢?



 楼主| hlrlqy 发表于 2014-4-8 07:32

被我吃了,有时间吐出来
_晓宇 发表于 2015-6-20 20:11
被我吃了,有时间吐出来
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-9-22 21:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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