2010-01-28 126 views
3

我正在創建一個C#.Net應用程序,我希望能夠編譯「所有CPU」。我也想在這個應用程序的用戶界面中包含特定的ActiveX控件,但我嘗試使用的ActiveX控件不支持32位。是否有一些技巧或解決辦法我可以使用讓這個控制工作?64位.NET應用程序中的32位ActiveX控件

將ActiveX控件嵌入到Web瀏覽器控件中怎麼樣?這甚至會工作嗎?

回答

2

您必須在單獨的32位進程中運行ActiveX控件。這將是困難的,它將有自己的窗口,不會成爲你的64位進程的用戶界面的一部分。雖然SDK文檔明確禁止它,但您可以嘗試利用SetParent()API函數中內置的Windows 3 appcompat。它可能工作。

你會有很多額外的麻煩,進程之間的溝通很棘手(你需要Remoting或WCF),難的部分是處理異常。一個過程轟炸另一個倖存者,從來沒有注意到有什麼不對的地方不會很漂亮。

也許平臺目標選項聽起來有吸引力?

2

您無法在64位應用程序中加載32位組件,但可以將組件包裝在自己的進程中,並使用IPC來利用組件的功能。當然這可能不可行,具體取決於實際的組件。

相關問題