hs999xl 发表于 2023-5-31 22:19:05

关于部件dll的问题

编译部件dll时也生成个对应的火山模块,这个是白送的吗?可以不用吗?

雨中漫步 发表于 2023-5-31 22:25:23

引用模块就相当于声明了DLL,这很方便啊,为什么不用呢
如果你要自己一个一个方法去声明,完全可以用标准的DLL

hs999xl 发表于 2023-5-31 22:34:17

我不太明白,为什么生成wcv文件还要生成火山模块,这一定是有原因的,那是什么呢?

Xelloss0618 发表于 2023-5-31 23:12:17

因为标准的DLL不支持类
火山的部件DLL可以使用火山的类,导出函数跟普通的dll不一样,没有wsv文件你是没办法调用的。

雨中漫步 发表于 2023-6-1 10:11:50

本帖最后由 雨中漫步 于 2023-6-1 10:16 编辑

部件DLL本质就是一个标准的DLL,只是内部有一个默认的方法,里面有很多规则,本质是一些指针的传递
部件DLL是编译后的,不是编译前的,和易语言的模块不一样。
部件DLL对比通用DLL,最大优势有俩,1,楼上有人回复中讲的很多可以直接使用类,不用很复杂的声明和指针处理,2,可以把事件投递出来,面向对象开发中事件投递是非常重要的。

通用DLL是只能声明简单子程序出来, 声明,引用,调用,都需要手工写,源码量大。
部件DLL,引用自动生成的模块文件,就自动完成了,声明,引用的过程,而且可以直接使用类和事件。

部件DLL本质是 火山视窗对标准DLL的进一步封装


你问的,为啥会生成一个模块文件,
1,模块文件里包含了,声明和引用部分,减少源码量
2,有一些特别封装,把类和事件投递出来了

去掉自动生成的部件,你要自己通过指针做各种复杂的操作才能实现相似的功能。
如果公开的方法很多,成百上千,你只是DLL内写声明和主程序里写引用就累死了。

有这个疑问说明,平时没开发过大型软件,使用DLL的机会不多。用用对比下就懂了。

创世魂 发表于 2023-6-1 10:24:32

楼上说的对,这里不多说了。

hs999xl 发表于 2023-6-1 18:44:37

雨中漫步 发表于 2023-6-1 10:11
部件DLL本质就是一个标准的DLL,只是内部有一个默认的方法,里面有很多规则,本质是一些指针的传递
部件DLL ...

感谢您的回答,太棒了。您录制的视频也很棒!
页: [1]
查看完整版本: 关于部件dll的问题