【问题标题】:How to upgrade a VB6 app with .NET components如何使用 .NET 组件升级 VB6 应用程序
【发布时间】:2010-04-28 14:49:22
【问题描述】:

我想对一个 VB6 应用程序进行更改,该应用程序包含一个 .EXE,没有 VB6 DLL,但有几个 .NET DLL。

互操作是通过 VB6 应用程序引用的一个 .NET dll 实现的,这似乎需要对关联的 .tlb 文件进行 REGASM-ing。

如果我只想更改 VB6 应用程序 .exe,我可以直接编译它并将其放入现有安装的应用程序文件夹中,还是会出现绑定问题?

【问题讨论】:

  • 如果 tlb 文件是从 VB6 项目中引用的,那么应该可以。恕我直言,这是一个问题,只要通过反复试验就可以找到最快的答案:)

标签: .net vb6 interop


【解决方案1】:

当您使用这种方法进行 regasm 时,请务必使用 /codebase,以便应用程序可以与 DLL 位于同一文件夹中。

作为旁注,您可能希望在您的 Dll 上实际指定您的方法的 DispID,这样如果您更改您的 Dll,您就不需要更改您的应用程序(如果您导致按字母顺序重新排序方法名称)通过添加一个新的方法。

【讨论】:

  • DispID 是否允许您重新编译 DLL 而不必更改 .tlb 文件?它是如何工作的?
  • 没错,您需要显式设置接口,但是您可以更改 DLL(内部实现,而不是方法签名),而无需重新编译 VB6 应用程序,因为 TLB 不会更改。我有一个Example,我之前回答过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 2012-05-04
  • 2012-09-10
相关资源
最近更新 更多