2010-01-27 90 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