2008-12-18 57 views
5

在我的工作场所,我遇到了Visual Basic 6,但在阅读 “How do I sort arrays using vbscript?”的答案后,我很满意,至少有些缺失的VB6功能可以通过.NET功能进行补充。 (主要是不同种类的收藏)从Visual Basic 6使用.NET类的最佳方式是什么?

看来,至少有一些.NET类可用于编写脚本,可以在VB6到CreateObject之间使用。但我得到了一种独特的,很好的真实感,所以...

  • 我可能遇到什么隐患? (除了必须安装.NET)
  • 是否所有的.NET类都可以通过CreateObject
  • 有没有办法将这些类导入到我的VB6项目,所以我可以有IntelliSense?
  • 您对此方法有任何一般性建议吗?

回答

0

您应该只使用interop作为在系统之间推送数据的机制 - 而不是核心逻辑代码;所有的编组等的性能打击将太多。我建议你看看在VS2008中使用更新的VB变体等。这是一个很大的转变,但如果你能负担得起改变,你不会后悔。

个人而言,当我从VB6搬到我切换到C#中,但这一决定必须基于对当地环境等

+0

所有你想要的投票,但使用.NET集合等作为例程从VB6 *真*不是一个好主意。 – 2008-12-18 14:27:16

2

从对我公司的CAD/CAM应用的转化工作。我不建议从底层开始,即替换核心DLL或通过.NET添加核心功能。

我有更好的结果,从顶部开始,通过替换表单并开始工作到核心DLL。

最大的障碍是提供合适的打印机和图形界面。但是微软发布的打印机兼容性套件解决了这两个问题。幸运的是,当.NET只是一个微光的时候,我把所有以VB6为中心的图形和打印调用放在一个接口后面。

再次开始时,用调用COMM核心库的.NET程序集替换格式。

如果你的逻辑与表格交织在一起,我强烈建议将它分离出来,以便将它在Visual Basic 6中分离出一个新的COM DLL。让新的DLL通过一个接口与Form进行交互。如果你不能避免使用.NET程序集来提供新的功能,那么创建一系列定义良好的程序和有限的接口来控制.NET端和VB6/COM端之间的交互

例如,我们想为我们的行业添加办公/作业管理软件到我们销售的软件范围,我们决定使用.NET框架。它必须与我们的CAD/CAM软件进行交互,因此我们创建了一系列接口,每个接口都可以提取所需信息或触发相互之间的动作。

最后,如果.NET类实现COM接口,大问题是您需要确保属性中的任何参数都必须声明为ByVal或.NET,否则无法实现该属性并失败实现界面。这包括设参数的值或者设置

1

也许this是有益的:

通过使用许多在MS .NET中找到的类的可用信息的Mscorlib.dll已在Visual Basic 6转载。这不是CLI运行时的实现,只是mscorlib.dll库文件中的一些unitlity类。

相关问题