67194:67194 > 玩儿转嵌入式开发
[导读]遇到一个问题,开发的程序莫名其妙的卡死了!这个程序是运行在一个大环境中,我的程序并未更新。但从现象上来看,确实是我的程序在接收到UI 通过SendMessage 发来的消息后,在处理中引起卡死的现象。

遇到一个问题,开发的程序莫名其妙的卡死了!

这个程序是运行在一个大环境中,我的程序并未更新。但从现象上来看,确实是我的程序在接收到UI 通过SendMessage 发来的消息后,在处理中引起卡死的现象。将我的这个程序,放在之前的版本中,就不会出现卡死的问题。

虽然开始怀疑不是自己程序的问题,但还是先从自己的程序入手,希翼能找到卡死的原因。最后确定的原因让我吃惊,竟然是FindWindow 函数调用后没有返回,引起卡死的现象出现。

因为在多处增加LOG 输出后,发现有:

start call FindWindow.

输出,但无:

end of call FindWindow. 输出!

查看此处代码,发现自己以前竟然遇到过类似的问题。但是由于另外一句FindWindow 是测试用的,所以当时只是简单的将它注释了,然后写上了注释掉它的原因。如下面的代码所示:


RETAILMSG(1,(L"start?call?FindWindow.rn"));
//?hAgent?=::FindWindow(NULL,L"TestAppWinName");??????????????????//此句放在线程中引起线程卡死
hClient?=::FindWindow(NULL,L"Test2AppWinName");
RETAILMSG(1,(L"end?of?callFindWindow.rn"));



现在的卡死问题的原因下面这句:hClient = ::FindWindow(NULL,L"Test2AppWinName"); 引起的。

?

通过远程工具:Remote Spy 查看出错前与出错后的进程信息,对比发现被查找的窗体的窗体名从:Test2AppWinName 变为空了。

但通过远程工具:Remote Process Viewer 查看进程时,被查找的窗体名是正确的,还是:Test2AppWinName。

在出错后,另写一个简单的程序,通过FindWindow 查找上面的窗体时,可以正确查找到。

?

以下通过远程工具截取的进程与窗体名等相关信息的图片:

1)正确的情况下:

2)错误的情况下:

两幅图最大的区别就在于“Window Property”中的“Window”的内容。





其实,问题的原因还没有找到,还需要继续。

后续的分析,见:WinCE7.0_FindWindow函数在线程中调用卡死的现象(2)

换一批

延伸阅读

[玩儿转嵌入式开发] WinCE7.0_FindWindow函数在线程中调用卡死的现象(2)

上接:WinCE7.0_FindWindow函数在线程中调用卡死的现象/*?*?对于同一句FindWindow(NULL,L"TestFindWindow");?*?在按键响应中实行,耗时约为: 5ms?*?在线程中实行,由于按键响应中有?...

关键字: WinCE findwindow

[玩儿转嵌入式开发] WinCE7.0下系统支撑的路径长度

在 WinCE7.0 下对系统支撑的最长路径进行了测试。最原始的测试方法:先建目录,目录名稍长一些;等到不能再建立目录时,在上一级建立目录名长度不等的目录进行对比。然后测试是否可以向目录中复制文件,对复制文件的文件长度是否有限制等。NAND...

关键字: 路径 wince7.0

[玩儿转嵌入式开发] WinCE7.0_FindWindow函数在线程中调用卡死的现象(1)

WinCE7.0_FindWindow函数在线程中调用卡死的现象(1)

遇到一个问题,开发的程序莫名其妙的卡死了!这个程序是运行在一个大环境中,我的程序并未更新。但从现象上来看,确实是我的程序在接收到UI 通过SendMessage 发来的消息后,在处理中引起卡死的现象。将我的这个程序,放在之前的版本中,就不会...

关键字: wince7.0 findwindow 卡死

[C++学习笔记] WinCE7.0 下 Silverlight(XAML) 类型的应用启动逻辑

WinCE7.0 下 Silverlight(XAML) 类型的应用启动顺序,如下堆栈所示:?SWEClock.exe!MainPage::OnLoaded(IXRDependencyObject*?pRoot?=?0x00047840)?...

关键字: 堆栈 wince7.0 xaml

[C++学习笔记] 新建 WinCE7.0 下的 Silverlight 工程

这也是我写此文章时一步一步建立的 Silverlight 工程。1 使用 微软 Expression Blend 3 创建一个 Silverlight for Windows Embedded Application 工程,放...

关键字: 工程 silverlight wince7.0

玩儿转嵌入式开发

327 篇文章

关注

发布文章

技术子站

更多

论坛活动

  • 加入Vicor,让机器人供电系统设计更有“料”
    加入Vicor,让机器人供电系统设计更有“料”
  • ADI视频课堂精品上新-观看有礼
  • 【20周年庆】21ic下载站VIP五折起,技术资料免积分下载!
  • 贸泽电子设计“新”头好
更多

资料下载

  • ST-Link原理图和固件
  • Linux下C语言编程入门教程
  • Multisim2001电路设计及仿真教材
  • Linux内核源码分析--zImage出生实录(Linux-3.0ARMv7)
  • AD封装库-国标版
  • 新概念模拟电路全集
  • 张飞电子全套视频下载地址及提取码
  • DSP教程---ADC和DAC
  • stm32温湿度-超声波-LCD结合项目
  • 分布式BFD系统中驱动模块的设计与实现
关闭
XML 地图 | Sitemap 地图