wince应用程序

wdw1600 2009-02-18 10:37:09
最近弄wince要求:按键按下,LCD弹出窗口,
按键驱动我已经弄好:
发送信息部分贴出来:
while (1) {
__try {
we = WaitForSingleObject(pPWR->ISTEvent, INFINITE);
RETAILMSG(1,(TEXT("\r\nPWR_IST: pPWR->State = 0x%x \r\n"), pPWR->State));
SetEvent(m_hEventExit);//向应用层发送消息。
LeaveCriticalSection(&pPWR->RegCS);
// clear the interrupt before power off
InterruptDone(SYSINTR_POWER);
CurrStatus = SUSPEND;
SetSystemPowerState( NULL, POWER_STATE_SUSPEND, POWER_FORCE );

} _except(EXCEPTION_EXECUTE_HANDLER)
我想了解下应用层接收消息有些什么约定,函数是什么?用EVC编程有些什么要注意的设置?比如我下午编译的应用程序拷贝到flash里运行提示不是有效的WINDOWS应用程序。希望大侠解释一下,有实例源码更好,谢谢!
...全文
602 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdw1600 2009-02-23
  • 打赏
  • 举报
回复
应用程序中readfile()函数读取失败,有可能会是哪些方面的原因,望知道的大侠援助下,谢谢,紧急!
gooogleman 2009-02-21
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 wdw1600 的回复:]
hFile = CreateFile(TEXT("LES:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);

这个是我在gooogleman的博客里看到的,要在LES后加上索引号,LES是设备文件名前缀,这下清楚应用程序是怎么和驱动建立联系的了,
[/Quote]


小子,等着吧,去了成都要好好招待我...
wdw1600 2009-02-21
  • 打赏
  • 举报
回复
hFile = CreateFile(TEXT("LES:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);

这个是我在gooogleman的博客里看到的,要在LES后加上索引号,LES是设备文件名前缀,这下清楚应用程序是怎么和驱动建立联系的了,
wdw1600 2009-02-21
  • 打赏
  • 举报
回复
[Quote=引用 44 楼 gooogleman 的回复:]
引用 43 楼 wdw1600 的回复:
hFile = CreateFile(TEXT("LES:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);

这个是我在gooogleman的博客里看到的,要在LES后加上索引号,LES是设备文件名前缀,这下清楚应用程序是怎么和驱动建立联系的了,



小子,等着吧,去了成都要好好招待我...
[/Quote]
美女美味美酒准备好了的,Welcome to ChengDu! At here,beauty girl are everywhere!
wdw1600 2009-02-20
  • 打赏
  • 举报
回复
死循环问题已经解决,我也不知道为什么,就是上面那个CASE语句不拴就可以了,现在应用程序始终无法和驱动通信,linux下应用程序只要头文件包含驱动就可以,WINCE下搞不来,哪个大侠指点下,谢谢!
楼上说的那个方法我没弄成功。他不跳出窗口
wdw1700 2009-02-20
  • 打赏
  • 举报
回复
while (1) {
__try {
we = WaitForSingleObject(pPWR->ISTEvent, INFINITE);
RETAILMSG(1,(TEXT("\r\nPWR_IST: pPWR->State = 0x%x \r\n"), pPWR->State));
SetEvent(m_hEventExit);//向应用层发送消息。
InterruptDone(SYSINTR_POWER); //告诉系统中断结束。

} _except(EXCEPTION_EXECUTE_HANDLER)
改成上面这样了,还是挂在while()里了,死循环。
xumercury 2009-02-20
  • 打赏
  • 举报
回复
。。。。。。。。死循环。。那就要检查下。。。
wdw1600 2009-02-19
  • 打赏
  • 举报
回复
。。。。晕了,我们公司没有老员工懂WINCE,他们以前都是在linux下打拼的,出于安全考虑军工产品是不会用WINCE的,我们用WINCE开发的是民品
gooogleman 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 wdw1600 的回复:]
遇到个麻烦,晕死,我怎么不能导出SDK,在PB-》PLATFORM那个菜单下面SDK横拉出三个选项:new sdk,config sdk,build sdk但是我那个只有new sdk能选,下面两个都不能选啊,怎么导出呢
[/Quote]

汗,你根本没有安装SDK啊,难怪会这样,

newSDK ——build SDK即可。然后在工程下找到SDK双击安装。狂汗,还说自己层 经运行成功过,先检查一下MFC组件加了没有,否则导出SDK安装照样不能运行,你们公司的老员工不可能不会的,你问他们不教,这个企业也太..........
wdw1600 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 gooogleman 的回复:]
引用 31 楼 wdw1600 的回复:
我那是使用中断触发的,我就是郁闷了,为什么我加了setevent();这个函数按键下去就成了死循环,系统直接死机,去掉就好了,去掉了又怎么发信息呢


按下一次之后必须把中断的一些寄存器处理一下,否则在按下的时候,没有处理机械抖动,会造成多次中断发生。

你现在只能一步步加打印信息,看死在哪里了。
[/Quote]
就是死在while(1)里面的
wdw1600 2009-02-19
  • 打赏
  • 举报
回复
遇到个麻烦,晕死,我怎么不能导出SDK,在PB-》PLATFORM那个菜单下面SDK横拉出三个选项:new sdk,config sdk,build sdk但是我那个只有new sdk能选,下面两个都不能选啊,怎么导出呢
iusarg 2009-02-19
  • 打赏
  • 举报
回复
注明:楼主是在evc下编译的应用程序,在pb中到处sdk就一定行吗?
wdw1600 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xumercury 的回复:]
比如我下午编译的应用程序拷贝到flash里运行提示不是有效的WINDOWS应用程序。
应该是SDK的问题。按键响应的话从底层叫上去比较方便一些。
底层收到键值然后返回给WINCE上层,上层通过读取返回的值去应用层执行相应的exe 虽然绕了一圈但是还是比较简单的处理方法。
[/Quote]
请问这个过程是怎么实现?是不是像上面8楼说的:
驱动用 SetEvent(m_hEventExit);//
上层消息名和m_hEventExit的一样就可以了. 也用WaitForSingleObject
wdw1600 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gooogleman 的回复:]
引用 9 楼 wdw1600 的回复:
CPU是我选对了的ARMV4I,我忘了写明白,我编的那个是wince api不是MFC我选的是第一个选项


在编译系统的时候,PB右侧的MFC组件选了吗?
[/Quote]
PB右侧是catalog框框,里面没有MFC组件选项哦?
xumercury 2009-02-19
  • 打赏
  • 举报
回复
比如我下午编译的应用程序拷贝到flash里运行提示不是有效的WINDOWS应用程序。
应该是SDK的问题。按键响应的话从底层叫上去比较方便一些。
底层收到键值然后返回给WINCE上层,上层通过读取返回的值去应用层执行相应的exe
虽然绕了一圈但是还是比较简单的处理方法。
biaozai06 2009-02-19
  • 打赏
  • 举报
回复
开发EVC应用程序,以下两点是需要注意的:

一、打包EXE文件时选择release版本,而不是debug;
二、如果使用到MFC库,首先看自己的SDK环境是否包含MFC库,另外还要将项目属性设置中“MFC的使用”设置为“静态 链接MFC库”。
gooogleman 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wdw1600 的回复:]
CPU是我选对了的ARMV4I,我忘了写明白,我编的那个是wince api不是MFC我选的是第一个选项
[/Quote]

在编译系统的时候,PB右侧的MFC组件选了吗?
wdw1600 2009-02-19
  • 打赏
  • 举报
回复
还有个,就是楼上几位说的设置,是在什么地方设置啊?能不能具体指明下啊,谢谢
wdw1600 2009-02-19
  • 打赏
  • 举报
回复
这句我要屏蔽了,离开临界区。。。。我都没建立临界区。。。
wdw1600 2009-02-19
  • 打赏
  • 举报
回复
CPU是我选对了的ARMV4I,我忘了写明白,我编的那个是wince api不是MFC我选的是第一个选项
加载更多回复(22)

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧