在保持与用C#编写的PocketPC 2003代码兼容性的同时,支持WindowsMobile5 (和更高版本)设备的最佳方式是什么?我们有一个相当大的应用程序,由一群不同的客户使用,大致平均分配给拥有实际PPC2003设备的用户,其余的用户使用较新的WinMobile5或更新的设备--也就是说,我们必须在相当长一段时间内继续支持较旧的设备。现在,我需要将相机控制添加到应用程序中,至少对于那些有相机的设备是这样的,这样他们就可以拍摄照片并将其附加到其他数据,这些数据最终会发送到sent服务进行处理。
到目前为止,我的研究已经在Microsoft.WindowsMobile.Forms动态链接库中找到了CameraCaptureDialog类,但我不能将该引用添加到PocketPC 2003应用程序中。老板并不热衷于将应用程序拆分成独立的PPC2003和WinMobile项目。有没有办法动态加载这个动态链接库,并以这种方式使用CameraCaptureDialog?还有其他选择吗?
发布于 2010-07-13 09:51:03
从.NetCF PocketPC 2003应用程序访问摄像机的唯一方法是P/调用C/C++动态链接库。有一个示例应用程序可以解决这个问题(我会寻找它的--我记不住细节了,但我想C代码是通过DirectShow访问摄像头的),但是它使用起来相当复杂,可能不会完全满足您的需要。从好的方面来说,如果你能弄清楚怎么做,它将在Windows2003和PocketPC Mobile5上运行(即功能性PPC2003应用程序也可以在WinMo5设备上运行)。
CameraCaptureDialog几乎是无用的,所以你不会损失太多。理想情况下,作为一名程序员,你会希望相机界面是可编程控制的(例如,设置分辨率,从相机切换到视频,拍摄照片等),但它实际上不能让你做任何事情,除了打开设备的内置界面。
更新:是我提到的示例应用程序:
http://blogs.msdn.com/b/marcpe/archive/2006/03/03/542941.aspx
我记错了:这个示例不能在Windows2003中工作(只能在PocketPC Mobile5或更高版本中)。据我所知,在PocketPC 2003中没有办法访问设备摄像头。至少没有独立于设备和/或制造商的方式访问相机。对于某些设备(例如HP iPaq ),制造商通过设备上已存在的动态链接库(您可以通过P/Invoke访问)来公开相机功能。
如果您需要集成摄像头,则设备必须运行Windows Mobile 5(或更新版本)。一些设备可以升级到较新版本的操作系统,但我肯定会对此提出质疑。最好换成更现代的设备(比如Droid )。
https://stackoverflow.com/questions/3233592
复制相似问题