2011-08-10 34 views
0

我需要爲MFC應用程序編寫一個插件:
- 插件部署爲dll。
- 在運行時,MFC應用程序將調用插件,插件顯示一個自定義對話框。
- dll需要動態加載,如果dll更新,MFC應用程序不應該被重新編譯。爲MFC應用程序創建一個.net插件?

我主要在.net中編寫代碼,並且在使用MFC之後,對我來說一切似乎都太奇怪了(沒有事件/委託等)。我很好寫一個MFC DLL,但如果我可以在.net中做到這一點,那麼我願意嘗試一下。一個可能的解決方案是我可以編寫一個C#DLL並將其公開爲COM。由於我對COM沒有任何瞭解,因此我的問題如下:
- 是否需要在客戶機上安裝.net框架?
- 可以從MFC應用程序動態加載COM嗎?
- 我讀了一些關於使用COM註冊程序集的東西,這是否發生在客戶機上? (如果是,則安裝程序可能需要更新) - 是否容易在MFC應用程序中使用COM(這需要MFC開發者修改其代碼)

或者,考慮是否有太多的努力,使.net,COM和MFC之間的連接,你會建議我在MFC中編碼嗎?謝謝。

UPDATE:
我決定使用C++/CLI爲MFC和.Net之間的橋樑。可以從MFC應用程序調用混合的C++/CLI dll,並且該DLL可以使用.net框架。因此,我可以在另一個dll中用C#編寫UI,並且可以通過C++/CLI調用該dll。

參考文獻:

  1. Native and .NET Interoperability
  2. Integrate Windows Forms Into Your MFC Applications Through C++ Interop

回答

1

是否.NET框架需要客戶端的計算機上安裝?

是框架工作,必須在客戶機

COM可以動態地從MFC應用程序加載上安裝?

可以的話,MFC應用程序將動態地加載DLL,它可以調用它不只要被更新爲你的類的公有接口不改變

我讀一些有關使用註冊程序集COM,這是否發生在客戶機上? (如果是,那麼安裝程序可能需要更新)

是的.NET COM對象(或任何COM對象)必須在客戶機上註冊。您可以使用建築安裝項目在Visual Studio中做的是

可以更輕鬆地在MFC應用程序中使用COM(這需要MFC開發者修改其代碼)

它應該是相當容易,但是這更多的問題MFC開發的

你會建議我的代碼MFC

你知道C++還是MFC?如果不是,它可能需要更多的工作。

另一種選擇是將組件寫入C++/CLR。它可以暴露可從MFC應用程序直接調用的無人功能/類。

+0

你忘記填寫答案了嗎? –

+0

@AZ,是的,我打保存太早,現在的答案是 – shf301

+0

我知道C++和C++/CLI。 MFC,一點點。我很好奇C++/CLI部分,所以我可以編譯我的混合DLL,它可以被MFC應用程序用作任何其他C++ DLL? (假設它僅使用本地接口) –

相關問題