火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 925|回复: 6
打印 上一主题 下一主题

[视窗] 关于部件dll的问题

[复制链接]

47

主题

218

帖子

1353

积分

金牌会员

嘿嘿哈哈

Rank: 6Rank: 6

积分
1353
跳转到指定楼层
楼主
发表于 2023-5-31 22:19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
编译部件dll时也生成个对应的火山模块,这个是白送的吗?可以不用吗?
回复

使用道具 举报

5

主题

86

帖子

427

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
427
QQ
沙发
发表于 2023-5-31 22:25:23 | 只看该作者
引用模块就相当于声明了DLL,这很方便啊,为什么不用呢
如果你要自己一个一个方法去声明,完全可以用标准的DLL
回复

使用道具 举报

47

主题

218

帖子

1353

积分

金牌会员

嘿嘿哈哈

Rank: 6Rank: 6

积分
1353
板凳
 楼主| 发表于 2023-5-31 22:34:17 | 只看该作者
我不太明白,为什么生成wcv文件还要生成火山模块,这一定是有原因的,那是什么呢?
回复

使用道具 举报

26

主题

1464

帖子

5517

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5517
地板
发表于 2023-5-31 23:12:17 来自手机 | 只看该作者
因为标准的DLL不支持类
火山的部件DLL可以使用火山的类,导出函数跟普通的dll不一样,没有wsv文件你是没办法调用的。
回复

使用道具 举报

5

主题

86

帖子

427

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
427
QQ
5#
发表于 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的机会不多。用用对比下就懂了。

评分

参与人数 1金钱 +1 收起 理由
hs999xl + 1 很给力!

查看全部评分

回复

使用道具 举报

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36205
6#
发表于 2023-6-1 10:24:32 | 只看该作者
楼上说的对,这里不多说了。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

47

主题

218

帖子

1353

积分

金牌会员

嘿嘿哈哈

Rank: 6Rank: 6

积分
1353
7#
 楼主| 发表于 2023-6-1 18:44:37 | 只看该作者
雨中漫步 发表于 2023-6-1 10:11
部件DLL本质就是一个标准的DLL,只是内部有一个默认的方法,里面有很多规则,本质是一些指针的传递
部件DLL ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-4-25 17:25 , Processed in 0.088022 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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