易语言模块及DLL动态链接库编写

 2024-02-28 00:04:41  阅读 0

DLL(Link)文件是动态链接库文件,也称为“应用程序扩展名”,是一种软件文件类型。 在 中,许多应用程序都不是完整的可执行文件。 它们被分成一些相对独立的动态链接库,即DLL文件,放置在系统中。 当我们执行一个程序时,就会调用相应的DLL文件。 一个应用程序可以使用多个DLL文件,并且一个DLL文件也可能被不同的应用程序使用。 此类 DLL 文件称为共享 DLL 文件。

1、模块实际上是几个独立的子程序源代码的集合,也就是易语言的源代码,DLL可以认为是模块的编译结果。

模块和dll都封装了一组函数供其他人调用。 唯一的区别是,一个类似于API(模块),另一个类似于ABI(DLL)。

有些人可能不太清楚API和ABI。 说白了,API提供的是源代码级别的接口,ABI提供的是二进制级别的接口。

模块只能被Yi程序调用,而dll也可以被c等其他程序调用。

模块只能用e编写并由e调用; DLL可以用其他语言编写并用其他语言调用,提供较低级别的兼容性。

该模块支持窗口组件作为参数。 该 DLL 不支持它。 模块全局变量是整个EXE的全局变量,DLL的全局变量只是DLL的全局变量。

模块的代码将全部写入EXE。 结构会变得越来越大,DLL的代码也只会写在DLL中。 该模块只能使用彝语。 该 DLL 可以用于其他语言。

dll是动态链接库。 里面有很多命令。 任何编程语言都可以直接调用。

易语言模块可以引用dll命令,这些命令不一定是dll链接库的命令。 它只能被彝语使用。 而是可以将Easy 自带的dll命令或者支持库命令写成更高层的封装命令来调用。 相当于用易语言编写的子程序。 如果需要的话,不需要从头开始编写,直接使用模块的命令即可。

反编译易语言程序_易语言dll反编译工具_dll反编译成易语言源码

用于语言中

2. 为什么需要模块?

1、为了方便管理,方便别人或者自己调用,减少不必要的重复工作,这是任何编程语言都具有的模块功能。

2、彝语编辑环境所迫:

除了易语言有一个程序集可以自定义将代码分成不同的程序组之外,其他方面简直就是愚蠢的:

答:所有 DLL、常量和自定义数据类型都聚集在一起。 如果你编写的程序中有很多DLL或者自定义类型,特别是有一些内容相同但名称不同的,不仅会出现重复的问题,还会让人眼花缭乱。 尝试从程序中提取部分来形成模块,这会很烦人。

因此,我们只能用模块来分类。 它们各自的DLL、数据类型和子程序组合在一起,称为模块。

B、同一彝语窗口中的事件子程序只能集中在一个程序集中,不允许分开。 想象一下,您有一个窗口,选择文件夹中有 n 个子文件夹。 每个子文件夹都有不同的事件子例程,例如列表框、击键等,并且这些事件子例程可能有数百甚至数千个。 找到子程序是什么感觉?

3、模块是源代码的集合,可以说是清晰的代码,不利于保护代码。

4、模块可以编译成DLL,别人无法修改,更安全。

5、DLL只能传入常规参数,不能传入组件参数,甚至不能传入字节集。 参数不能有可为空的标志。 这是基本的区别。

6、另外,很多人不知道,模块和DLL最重要的区别是什么?

我告诉你,虽然易语言没有明说,但这应该成为一个编程规范!

那就是:DLL不应该使用支持库!

目前的情况,必须使用核心支持库。 除了核心支持库之外,不宜使用其他支持库!

为什么?

如果您还使用其他支持库,则可以将它们编写为模块。 为什么要把它们写成DLL呢? 这不是主要的,主要的是:

在 Easy 中编译时,它不会识别 DLL 使用的任何支持库,包括核心支持库。 这是与模块最大的区别。

dll反编译成易语言源码_易语言dll反编译工具_反编译易语言程序

有些使用DLL的程序编译后在你的电脑上可以正常运行,但是当它们运行在其他电脑上甚至是你自己电脑的其他目录下时,就会提示缺少支持库!

希望:易语言能够产生一个连核心支持库都不用的DLL。

8. 不适合使用DLL的支持库。 如果不需要支持库,应该使用什么? API,答案是正确的。 这是模块和 DLL 之间的根本区别。 可以说,编写模块时使用易语言的支持库,编写DLL时使用API​​。 这是一个常态。

我使用API​​的习惯是,如果核心支持库的命令能做到的话,我就不需要API。 如果一两行API代码可以替代扩展支持库,我就不需要支持库了。

正如您所看到的,某些模块(包括 模块)在核心支持库中显然具有相同的命令。 使用API​​ 来创建模块命令是多余且不必要的!

9、学习一言编程的时候一定要写DLL,尽可能把模块写成DLL,这样才能提高自己的表现。

10.我再次对彝语提出建议。 很多人都提到过这个建议:

易语言应该在核心中发布另一个核心支持库。 此核心支持库与现有核心支持库完全兼容,但仅包含最基本的核心命令,不包含任何组件(窗口)命令。 可以完全从现有的核心支持库中提取出来,大小控制在100KB以内,编译时直接包含到文件中。

众所周知,控制台程序、DLL程序、DOS程序等基本上不使用任何窗口组件。 为什么他们拥有庞大的支持库并轻松向他人报告病毒?

我用 C 语言编写了一个小型控制台程序(没有任何窗口组件供其他 EXE 文件调用)。 编译后才10K,但加上E就1M多了,更不用说报毒了。 (转载自精益论坛)

原文:Easy 模块和 DLL

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码