我需要爲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。
參考文獻:
- Native and .NET Interoperability
- Integrate Windows Forms Into Your MFC Applications Through C++ Interop
你忘記填寫答案了嗎? –
@AZ,是的,我打保存太早,現在的答案是 – shf301
我知道C++和C++/CLI。 MFC,一點點。我很好奇C++/CLI部分,所以我可以編譯我的混合DLL,它可以被MFC應用程序用作任何其他C++ DLL? (假設它僅使用本地接口) –