梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

Windows Mobile 5.0 下的GWES.EXE错误

     在Windows Mobile 5.0的设备上进行开发,最怕见到这个所谓的GWES.EXE Error。因为程序出现该错误,程序几乎不能正常运行,而且对于开发者来说,系统给出的错误报告,没有几个会看懂的,即不知道程序中的哪个地方出现了问题;而且一旦出现这个错误,即使随后的程序仍能运行,也会经常跳出那个错误报告,一个字烦。而在Windows Mobile 5.0以前的系统上,很少会看到这个错误信息。
 (BTW在开发基于Windows Mobile 5.0的应用程序的时候,应先检查下,设备上的"错误报告"是否关闭,如果关闭了,就不会跳出以上的错误报告信息,但是一旦开启,程序运行的时候就会出现问题,比如弹出那个错误信息。检查的方法:(PPC)开始——〉设置——〉系统——〉错误报告——〉启动错误报告)
    下面是我在开发的过程中,会出现GWES.EXE Error的几个方面,来个抛砖引玉:
     1、一个字符串的内存空间不是通过mallo/new分配的,如可能是复制另一个字符串的,但是在程序中的某个地方,却用free/delete将其回收。
     2、如果是动态申请的空间,如果没有回收,在做Hopper Test的会出现问题;创建的资源如字体、画刷等,没有删除,会产生内存的泄漏,长时间运行程序,也会产生GWES.EXE Error。
    3、CFont  BoldFont;
          BoldFont.CreateFont(0, 0, 0, 0,FW_SEMIBOLD,
   false, false, false, DEFAULT_CHARSET,
   OUT_DEFAULT_PRECIS, CLIP_CHARACTER_PRECIS,
   DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE,
   _T("黑体"));
       CFont *pOldFont;
       pOldFont = pDC->SelectObject(&BoldFont);
       // do Something
      pDC->SelectObject(pOldFont);
      BoldFont.DeleteObject();
     // 之后没有再对默认的字体进行修改
      pDC->SelectObject(pOldFont); //
      就是因为重复了这个,一运行程序,马上出现GWES.EXE Error。
   
……(待补充)
     目前,想到就这些,欢迎补充!

     可见,这种错误都是粗心造成的,只要认真审查下代码,就会避免出现这种错误。

posted on 2007-03-09 18:11  梦书  阅读(5819)  评论(0编辑  收藏  举报