将.net紧凑框架转换为activex

时间:2012-09-13 16:17:41

标签: windows-mobile compact-framework activex windows-mobile-6

我为针对Windows Mobile 6.1的手持式扫描仪创建了一个解决方案。现在我需要知道是否可以将此解决方案嵌入到ActiveX中以在IE8(非移动设备)上运行。如果掌上电脑不可用,这是备份。显然扫描功能不起作用,但除此之外,是否可以转换它?我不想管理相同代码的多个副本。

2 个答案:

答案 0 :(得分:2)

不,你不能。 Compact Framework不支持EE Hosting,因此无法将Compact Framework的任何内容直接编译到COM / ActiveX对象。

您是否可以创建桌面C#项目,然后提取代码文件并将其编译为ActiveX控件?这取决于你想做多少工作。至少,您必须为所有公开的类定义COM接口,并为Guid,InterfaceType和ComVisible以及每个属性的Didpid等类添加属性。您必须确保所有公开的类型都具有COM功能并且还可以进行接口。尝试保持代码库仍然可编译,因为您现有的CF应用程序本身就是一个很大的挑战。

当然,你会遇到任何P / Invokes问题(这是一个非常罕见的CF应用程序,不需要它们)。你必须在另一个界面(或更多)中抽象它们。并且UI级别的任何窗口处理都可能需要更改。

当你完成所有这些工作时,你可能会花更多时间完全重写浏览器的应用程序,它可能不会像重写那样有效。

答案 1 :(得分:1)

这似乎表明它在某种程度上是可能的:

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

但是,我和其他开发人员试图在移动浏览器上使用这些工作数周而没有成功。我不知道这是项目类型本身还是设备的限制,但它只是不想玩。

正如ctacke建议的那样,我给这个想法提供了非常广泛的支持。 ActiveX是旧技术并限制您使用IE。如果可以的话,我强烈建议你采取另一种方式。