在保持与使用C#编写的PocketPC 2003的代码兼容性的同时,支持WindowsMobile5(及更高版本)设备的最佳方法是什么?我们有一个相当大的应用程序被一群不同的客户使用,大致在实际PPC2003设备的人和其他更新的WinMobile5或更新的人之间平均分配 - 即,我们必须继续支持旧设备很长一段时间然而。现在,我需要将相机控制添加到应用程序,至少对于那些拥有相机的设备,这样他们就可以拍摄照片并将其附加到最终发送到网络服务进行处理的其他数据。
到目前为止,我的研究已经发现了Microsoft.WindowsMobile.Forms dll中的CameraCaptureDialog类,但我无法将该引用添加到PocketPC 2003应用程序中。老板不太热衷于将应用程序拆分为单独的PPC2003和WinMobile项目。有没有办法动态加载该DLL,并以这种方式使用CameraCaptureDialog?还有其他选择吗?
答案 0 :(得分:2)
从.NetCF PocketPC 2003应用程序访问相机的唯一方法是通过P /调用C / C ++ DLL。有一个示例应用程序用于在Intertubes周围浮动(我会找到它 - 我不记得细节,但我认为C代码通过DirectShow访问摄像机),但是它很复杂,可能会赢得'完全按照你的需要做。从好的方面来说,如果你能弄清楚如何做到这一点,它将适用于PocketPC 2003和Windows Mobile 5(即功能性PPC2003应用程序也将在WinMo5设备上运行)。
CameraCaptureDialog几乎没用,所以你不会在那里失去太多。理想情况下,作为程序员,您希望相机界面可以通过编程方式进行控制(即设置分辨率,从相机切换到视频,拍照等),但除了打开设备之外,它实际上不会让您做任何事情。内置界面。
更新:以下是我提到的示例应用程序:
http://blogs.msdn.com/b/marcpe/archive/2006/03/03/542941.aspx
我误解了:这个示例不在PocketPC 2003中工作(仅限Windows Mobile 5及更高版本)。我不知道在PocketPC 2003中访问设备摄像头。至少没有设备和/或制造商独立的访问摄像头的方式。对于某些设备(例如HP iPaq),制造商通过设备上已存在的DLL(您可以通过P / Invoke访问)公开相机功能。
如果您需要相机集成,则设备必须运行Windows Mobile 5(或更高版本)。有些设备可以升级到更新版本的操作系统,但我肯定不得不质疑这一举动。最好转向更现代的设备(例如Droid)。