4

在保持与用 C# 编写的 PocketPC 2003 的代码兼容性的同时,支持 WindowsMo​​bile5(及更高版本)设备的最佳方式是什么?我们有一个相当大的应用程序正在被一群不同的客户使用,大致平均分配给使用实际 PPC2003 设备的人,其余的人使用更新的 WinMobile5 或更新的设备——也就是说,我们必须继续支持旧设备相当长一段时间然而。现在,我需要将相机控制添加到应用程序中,至少对于那些有相机的设备来说,这样他们就可以拍摄照片并将其附加到最终发送到 Web 服务进行处理的其他数据上。

到目前为止,我的研究已经发现了 Microsoft.WindowsMo​​bile.Forms dll 中的 CameraCaptureDialog 类,但我无法将该引用添加到 PocketPC 2003 应用程序中。老板不太热衷于将应用程序拆分为单独的 PPC2003 和 WinMobile 项目。有没有办法动态加载该dll,并以这种方式使用CameraCaptureDialog?其他选择?

4

1 回答 1

2

从 .NetCF PocketPC 2003 应用程序完全访问相机的唯一方法是 P/Invoking C/C++ DLL。在 Intertubes 的某个地方有一个示例应用程序(我会寻找它 - 我不记得细节,但我认为 C 代码通过 DirectShow 访问相机),但使用起来相当复杂,可能会赢t 做你需要的。从好的方面来说,如果您知道如何操作,它将适用于 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)。

于 2010-07-13T01:51:02.590 回答