我正在开发嵌入式Windows CE项目,并且有兴趣通过其中一个USB主机端口访问USB HID设备.我真正需要阅读的是原始HID规范包.在Windows计算机上,我有一个使用hid.dll的工作程序,但据我所研究,在CE上没有相应的东西.我知道有usbhid.dll,但我不确定它是否适用于这种情况.我不想编写内核级驱动程序,因为我想在c#中编写代码.有没有人在Windows CE上使用HID设备的经验?
目前我在Windows CE平台上从vs 2008部署我的Windows CE应用程序.运行正常.
我唯一的问题是我想部署配置文件以及exes和dll.目前,当我部署时,只部署了exes和dll,但没有部署配置文件.
每个配置文件的属性是"内容"和"始终复制".
请帮助我如何部署配置文件?
关于Windows的C++ GUI工具包有很多问题,但它们主要适用于桌面操作系统版本.
我现在正在为Windows CE 5.0 VGA手持设备启动一个C++项目,并考虑选择哪个GUI库.我有一些在Windows CE项目中使用MFC的经验,但是在SO中提到的MFC存在一些已知的弱点(例如,使用了过时的技术,糟糕的抽象,过度使用C++预处理器等).对于桌面项目,他们主要推荐QT和WTL.同时,MFC具有一些对于嵌入式开发仍然可观的特性.
那么,您如何看待,花一些资源学习新的GUI工具包从MFC切换是否合理,在这种情况下您会推荐哪种工具包?或者MFC仍然是Windows CE嵌入式开发中最重要的?
工具包最重要的特征是:适中的CPU和内存负载,小的运行时大小,良好的面向对象设计,符合良好的现代C++实践,陡峭的学习曲线,开发速度,商业外观,便捷的调试和设计工具.
(项目需要什么:串口通信,线程,图表和图表绘制,ActiveSync通信.)
我正在使用VS2008为Windows CE 5.0设备(Datalogic Kyman)创建Compact Framework应用程序.我在我的应用程序中使用SQL Server Compact 3.5.但是,我正在调试仍然安装了Windows CE 4.2的Kyman(通过USB使用移动设备中心连接).我的问题:
VS2008无法识别设备上已安装SQL Server Compact并要求我每次从IDE运行应用程序时都安装SQL Server Compact .安装程序向我显示有关SQL Server Compact CAB文件不适用于此设备的警告,但安装工作没有错误,应用程序也正常工作.
我已经取消选中"始终部署最新的.NET版本"这个框(不知道它的英文名称是什么,使用德语VS2008),但这没有用.
如何在每次启动应用程序之前告诉Visual Studio 不要安装SQL Server?
我在关闭使用具有INFINITE timout的WaitForSingleObject()的应用程序时遇到问题.
全貌是这样的.我正在执行以下操作以允许我的应用程序处理设备唤醒事件:
注册活动:
CeRunAppAtEvent("\\\\.\\Notifications\\NamedEvents\\WakeupEvent",
NOTIFICATION_EVENT_WAKEUP);
Run Code Online (Sandbox Code Playgroud)
启动一个新线程等待:
Thread waitForWakeThread = new Thread(new ThreadStart(WaitForWakeup));
waitForWakeThread.Start();
Run Code Online (Sandbox Code Playgroud)
然后在目标方法中执行以下操作:
private void WaitForWakeup()
{
IntPtr handle = CreateEvent(IntPtr.Zero, 0, 0, "WakeupEvent");
while (true)
{
WaitForSingleObject(handle, INFINITE);
MessageBox.Show("Wakey wakey");
}
}
Run Code Online (Sandbox Code Playgroud)
这一切都正常,直到我尝试关闭应用程序时,可以预见,WaitForSingleObject继续等待并且不允许应用程序正常关闭.我们只允许我们的应用程序的一个实例一次运行,我们在启动时检查这个.它似乎继续运行,直到设备软复位.
有没有办法杀死WaitForSingleObject正在等待的句柄,强制它返回?
非常感谢.
我有一个WinCE设备.是否可以从visual studio连接到设备以查看以下内容
Folder structure.
Applications running.
Registry values.
Run Code Online (Sandbox Code Playgroud)
有没有其他方法来查看这些项目?
我在哪里可以获得更多相关信息?
当退出Motorola MC3100上的.NET CF 3.5应用程序(仅限CE 6.0版本)时,我收到错误消息"应用程序xxx遇到严重错误,需要关闭".然后我需要热启动设备以使应用程序再次工作.
此代码在应用程序关闭之前正常工作,并且只有在应用程序中的控件上设置了字体时才会失败.在.NET CF 2.0和我使用.NET CF 3.5尝试过的所有其他Motorola,Intermec,Psion,HHC设备上,一切都运行良好.
这是我目前的测试代码:
[MTAThread]
static void Main()
{
Control oCtrl = new Control();
oCtrl.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
// Setting the controls font to null works
// oCtrl.Font = null; Works
// Setting the Control to null does not work, still get error
// oCtrl = null; Doesn't work
// Setting a font, not on a control, also works fine.
// System.Drawing.Font font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
}
Run Code Online (Sandbox Code Playgroud)
我看到了一些似乎相关的链接:
我必须为WinCE 5.0开发一个应用程序,该应用程序与常规PC应用程序通信/同步数据,该应用程序提供了我可以与移动(工业)设备通信的Web服务.
由于很明显导致移动设备端难以维护的代码(检查连接→完成时:检查网络服务可用性→完成时:检查移动设备是否有资格进行同步→完成开始交换数据时)我很想使用awaits 的同步编程方式.
我找到了Daniel Grunwald的一些代码片段,它是编译器为async/await功能所需的东西的最小实现.与.Net 3.5的任务并行库(我必须稍微改变,因为一些被称为不存在需要签名的方法)一起实现了Task类型,它看起来很有希望.
到目前为止,解决方案还没有构建,因为我缺乏实现TaskCompletionSource.我用ILSpy反编译了最近的mscorlib,但代码不可用 - 使用的类型太多,CF中没有.
在这一点上,我想知道这个项目是否一定会失败,因为我永远不会说服VS 2008(我必须在ordner中使用目标智能设备)来使用C#5编译器(可能有一个解决方法?),或者CF缺少TaskCompletionSource的关键类型(我可能会因为我想让事件等待而需要),或者TPL3.5 + Grunwald的片段+ TCS实现将构建但从未真正起作用.
有人可以更有经验请评价我的意图吗?很想听听你的意见,想法和其他方法.谢谢.
更新 Aaron Stainback的帖子表明应该可以用VS2012构建CF 3.5.这应该至少解决编译器问题.
compact-framework windows-mobile windows-ce .net-3.5 async-await
我正在尝试做这个简单的任务。只是使用 C 或 C++ 格式化数字,但在 Windows CE 编程下。
在这种环境中,inbue 和 setlocale 方法都不起作用。
最后我没有成功做到这一点:
char szValue[10];
sprintf(szValue, "%'8d", iValue);
Run Code Online (Sandbox Code Playgroud)
任何的想法?
windows-ce ×10
c# ×5
.net-3.5 ×2
embedded ×2
.net ×1
.net-cf-3.5 ×1
async-await ×1
c ×1
c++ ×1
hid ×1
pocketpc ×1
reflection ×1
usb ×1
winapi ×1