2010-01-27 87 views
3

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

+0

这个问题的重复 - 虽然这里的答案好多了,所以也许我们应该关闭另一个问题而不是这个问题。 http://stackoverflow.com/questions/2131111/use-net-in-vb6-or-classical-asp – MarkJ 2010-01-27 09:28:01

回答

1

我最后一次这样做,它有涉及如此棘手的(一些无关痛痒的问题,COM + ,部署等让我们沮丧),我实际上是这样避免了COM边界,并将接口重写为一个POX Web服务,与.NET中的处理程序(ashx)进行通话。我想给认真考虑这种方法......(除非你需要共享的窗口句柄,或类似)


如果你真的一个COM API,你需要生成一个COM可调用包装;这是很大程度上的情况:

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

之后你的VB6 应该是只是看到它作为另一个COM包,但我强烈建议您将此接口限制为最小值;它不会改变,并且VB6风格的接口转发(即在添加方法的情况下可以避免破坏二进制兼容性的情况)不在这里。

+0

我们遵循相同的步骤,最后我们得到了VB应用程序中的问题编译错误用户定义类型不确定 – subramani 2010-01-27 06:58:55

+0

@subramani - 它是否列出了VB6 IDE中的参考?你是在引用具体的类型还是界面? – 2010-01-27 07:34:47

+0

是在参考文献中显示。公共课 – subramani 2010-01-27 08:16:01