火山软件开发平台

标题: 关于部件dll的问题 [打印本页]

作者: hs999xl    时间: 2023-5-31 22:19
标题: 关于部件dll的问题
编译部件dll时也生成个对应的火山模块,这个是白送的吗?可以不用吗?
作者: 雨中漫步    时间: 2023-5-31 22:25
引用模块就相当于声明了DLL,这很方便啊,为什么不用呢
如果你要自己一个一个方法去声明,完全可以用标准的DLL
作者: hs999xl    时间: 2023-5-31 22:34
我不太明白,为什么生成wcv文件还要生成火山模块,这一定是有原因的,那是什么呢?
作者: Xelloss0618    时间: 2023-5-31 23:12
因为标准的DLL不支持类
火山的部件DLL可以使用火山的类,导出函数跟普通的dll不一样,没有wsv文件你是没办法调用的。
作者: 雨中漫步    时间: 2023-6-1 10:11
本帖最后由 雨中漫步 于 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
楼上说的对,这里不多说了。
作者: hs999xl    时间: 2023-6-1 18:44
雨中漫步 发表于 2023-6-1 10:11
部件DLL本质就是一个标准的DLL,只是内部有一个默认的方法,里面有很多规则,本质是一些指针的传递
部件DLL ...

感谢您的回答,太棒了。您录制的视频也很棒!




欢迎光临 火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4