2008-12-18 56 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類。

相關問題