VB.net生成的Dll和VB生成的Dll有何不同?

xy_dl 2012-03-16 10:02:41
VB.net生成的Dll和VB生成的Dll有何不同呢?我知道VB生成的Dll是基于COM组件的,那VB.net呢?
...全文
213 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xy_dl 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yjqmaster 的回复:]
肿么还自问自答呢
[/Quote]一直没人回答,然后就在Google上搜到了
想飞的狼 2012-03-19
  • 打赏
  • 举报
回复
肿么还自问自答呢
xy_dl 2012-03-19
  • 打赏
  • 举报
回复
还有个区别:vb生成的dll需要注册,vb.net生成的dll不需要注册。

这个不知道是否正确?
l_g_guo 2012-03-17
  • 打赏
  • 举报
回复
概念基本是懂了,但要学会应用,还要经过很多实践。
沐NeMo 2012-03-16
  • 打赏
  • 举报
回复
好!接分!
xy_dl 2012-03-16
  • 打赏
  • 举报
回复
net直接生成的DLL,VB不能直接调用,虽然扩展名都是.dll,但根本就是两种截然不同的东西。vb的dll就是一个没有main的exe文件,符合COM规范,里面都是直接的机器码。而.net的dll,是由跑在.netCLR上的中间二进制字节码以及其他一些有自描述功能的元数据组成的。如果你的机器上没装.netframework的话,不用说VB不能用,谁也不能用。当然,装了VB6也不能直接用。
可以通过下面的方式实现
1。创建一个接口并且自己写一个类来实现这个接口
2。创建强名并且对组件签名,然后生成.net组件。
3。打开VisualStudio.NET2003命令提示符,在打开的窗口中转到组件所在的Bin目录下,假设组建生成的Dll为TestCom.dll,输入regasm/tlb:TestCom.tlbTestCom.dll回车,regasm程序将创建一个类型库并在Windows注册表中对其进行注册,以使TestCom.dll中的类对COM客户端可用,输入:gacutil/ITestCom.dll回车,gacutil程序将程序集添加到GAC中,并显示状态消息,通知您操作已完成
4。经过上面几个步骤之后,你的组件就可以被COM调用了,你可以试验一下,用vb6.0可以引用这个组件,换句话来说,这个组件已经变成COM了
上面的方法是通过系统的功能,把.net的dll包装成了一个COM组件,就好比在系统和.net组件之间搭了一个桥,于是.net组件可以像一般的COM组件一样被VB6调用。说个最简单的道理:VB.net可以使用System.String,VB6.0中哪有什么System.String?那么谁负责把System.String对象转换成VB认识的String变量呢?所以要把.net写的类封装成一个COM 就可以调用了。
FrontRear 2012-03-16
  • 打赏
  • 举报
回复
学习了,虽然没有看懂!汗颜!

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧