2011-10-03 49 views
0

我的工作有一個用VB6編寫的應用程序。我的任務是用C#.NET編寫另一個不同的應用程序。我不允許更改VB6代碼,但每次在VB6應用程序中調用某個特定函數時,都需要調用一個函數(從我的.NET應用程序)。使用COM適合我嗎?

我的老闆建議使用COM或DCOM來完成這個任務。我對這些主題都不熟悉,並且無法找到可以輕鬆理解並且與我的任務相關的教程。

我能做到這一點使用COM或我將不得不修改現有的VB6的代碼?

+3

目前還不清楚。道路是:VB6調用C#調用某些東西或C#調用VB6或其他東西...而「我需要調用一個函數」......它是哪種語言? – xanatos

+2

除非VB6代碼已經是com對象,也就是組件,我認爲你將不得不以某種方式進行修改。要麼將它作爲一個COM對象公開,要麼將.Net代碼作爲COM對象公開。 – user957902

+0

爲簡單起見,如果兩個應用程序在同一臺計算機上運行,​​則可以使用DDE,但方法有些過時,但非常簡單。 – NickD

回答

1

在我聽起來像你有一個VB6應用程序的源代碼不應該被改變。現在,每次調用VB6應用程序中的某個方法時,您還需要調用另一個組件(C#)中的方法。

以上是一個假設,因爲你的問題是不是100%清楚。

如果是這樣的話,你不能改變VB6應用程序,那麼你可能能夠做到用COM Channel Hooks東西(假設VB6應用程序是由COM對象)。

但是,這將是使用C++和COM水平低,這可能是你不想要做的事。

0

認爲你是問有關從VB6 應用內從C#應用調用的方法。所以我們正在談論某種形式的進程間通信(因此有關DCOM的評論)。

我使用.NET遠程通過創建一個COM可調用.NET庫,以作爲與.NET應用程序被託管的遠程對象的客戶端,以取代DCOM在某些應用中。您的VB6應用程序使用這些對象,並在服務器上執行這些方法。

但是您將不得不修改您的VB6應用程序,至少有一點是要將新調用注入到您的.NET中。你能更清楚地瞭解不改變VB6應用程序的要求嗎?