2

我爲面向Windows Mobile 6.1的手持式掃描儀創建了一個解決方案。現在我需要知道是否可以將此解決方案嵌入到在IE8(不移動)上運行的ActiveX中。這是手持設備不可用時的備份。顯然,掃描功能將無法正常工作,除此之外,是否可以將其轉換?我不想管理相同代碼的多個副本。將.net小型框架轉換爲activex

回答

2

不,你不能。 Compact Framework不支持EE Hosting,因此無法將Compact Framework的任何內容直接編譯到COM/ActiveX對象。

您可以創建一個桌面C#項目,然後拉入代碼文件並將其編譯到ActiveX控件?這取決於你想做多少工作。至少,你必須爲所有暴露的類定義COM接口,併爲Guid,InterfaceType和ComVisible等類以及每個屬性的Didpid添加屬性。你必須確保所有暴露的類型具有COM能力和接口。儘量保持該代碼庫的可編譯性,因爲現有的CF應用程序本身就是一個巨大的挑戰。

當然,你會遇到任何P/Invokes問題(這是一個非常罕見的CF應用程序,不需要它們)。你必須在另一個界面(或更多)中抽象出那些。而且在UI級別處理任何窗口都可能需要改變。

當你完成所有這些工作時,你可能會花更多時間完全重寫瀏覽器的應用程序,它可能不會像重寫那樣工作。

1

這似乎表明,它有可能在一定程度上:

http://www.dreamincode.net/forums/topic/38890-activex-with-c%23/

然而,我和另一個開發人員試圖讓這個工作在移動瀏覽器的幾個星期都沒有成功。我不知道這是項目類型本身還是設備的限制,但它只是不想玩。

正如ctacke建議的那樣,我會給這個想法一個很寬的位置。 ActiveX是舊技術,並限制你到IE瀏覽器。如果可以,我強烈建議以另一種方式進行。