2011-07-06 27 views
1

我正在構建一個c#應用程序,旨在複製和增強多年前開發的VB6應用程序的功能。 我的問題是,舊的應用程序中的一個模塊做了一些真實複雜的事情,試圖從規格複製這個開始對我來說將是一個很大的痛苦。即使這聽起來像是最好的想法。遺留代碼visual basic to c#

我的問題是:有沒有一種方法,我可以保留舊的VB模塊,並將其融入到C#應用程序,這樣我就不必重寫一切嗎?

謝謝!

+0

是舊的VB模塊DLL的一部分(或者,如果不是,你可以隔離和編譯到DLL)? –

回答

3

是的。您可以將該模塊轉換爲COM對象,而.Net將很高興地調用COM對象。根據你現在的需要,你可能需要找到Visual Studio 6的一個副本來實現這一點(如果你有訂閱,它仍然可以在MSDN上使用)。爲了給你更確切的說明,我們需要查看更多的代碼。

0

您可以使用COM或模塊導出爲一個DLL。以下是關於VB6 and COM的一些信息。

0

在理論上是的,把它變成一個COM模塊,並從你的C#代碼中調用它。這是否會更容易,我不確定。

的問題是,這個問題不會消失,如果有需要的模塊的變化,或接口,然後有人去做。如此實際的是,但仔細考慮你在做什麼。

0

您可以將現有的vb代碼遷移到vb.net,並將其編譯爲獨立的程序集並將其添加到C#應用程序中。

3

Visual Studio中有一個嚮導,讓您VB6轉換爲VB.NET,然後你可以在你的C#項目和使用的參考。但是,此遷移工具不再隨Visual Studio 2010一起發貨(它以舊版本發佈)即使如此,通常還是需要進行大量手動修補工作,但通常最好用手重寫,這可能導致更高無論如何,高質量的代碼。我向你推薦的是重寫代碼,你可以進行修改並確保它能夠正常工作,而無需進入COM/Interop路由,但不一定避開該選項。如果重寫所有代碼確實是一個問題,那麼interop就是一個解決方案。

0

無法VS2010(也許2008)支持在同一個解決方案VB和C#項目?如果我沒有弄錯,他們可以。所以你實際上可以將你的VB6代碼轉換成VB.Net,並在你的解決方案中使用C#的東西。