我们有一个 .Net DLL。我们需要从 VB 应用程序调用这个 DLL。我们需要遵循哪些程序?

最佳答案

上次我这样做时,它变得非常棘手(一些与 COM+、部署等无关的问题让我们绊倒了),以至于我实际上放弃了 COM 边界,并将界面重新编写为与处理程序通信的 POX Web 服务( ashx) 在 .NET 中。我会给 认真的 考虑这种方法......(除非你需要共享 Windows 句柄,或类似的)

如果你真的想要一个 COM API,你需要生成一个 COM 可调用的包装器;这主要是以下情况:

  • 确保必要的类型/方法是公共(public)的
  • 将程序集/类型标记为 [ComVisible(true)]
  • 如果需要
  • 使用 tlbexe 导出类型库
  • 使用 regasm 在 COM 中注册类型(在 GAC 中或从驱动器上的固定位置)

  • 之后,您的 VB6 应该将其视为另一个 COM 包,但我强烈建议您将此接口(interface)限制为最低限度;它不是更改友好的,并且 VB6 样式的接口(interface)转发(即您可以在不破坏二进制兼容性的情况下添加方法的地方)不存在。

    关于c# - 从 Visual Basic 6 调用 .Net 类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2144902/

    10-17 01:55