WINCE6.0去除桌面上WINCE版本及编译时间信息

来源:互联网 发布:mac 网页关闭 复原 编辑:程序博客网 时间:2024/05/01 11:25

原创链接地址:http://blog.csdn.net/loongembedded/article/details/8010397

 

WINCE在进入桌面后,我们的系统可以看到“Windows Embedded CE v6.00 (Build 3122 on Sept 22 2012 )”这些WINCE版本及编译时间的信息,怎么去掉这些信息呢?我们先来看这部分信息是哪部分代码输出的,在WINCE600\PUBLIC\SHELL\OAK\HPC\CESHELL\UI\ desktopview.cpp文件的PaintBackground函数中有源码:

#ifndef SHIP_BUILD

   WCHAR wszVersion[256];

   OSVERSIONINFO VerInfo;

   VerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

 

   ::GetVersionEx(&VerInfo);

   ::wsprintf(wszVersion, L"Windows Embedded CE v%d.%02d (Build %d on %s) ",

              VerInfo.dwMajorVersion, VerInfo.dwMinorVersion, VerInfo.dwBuildNumber, TEXT(__DATE__));

   if (m_hbmpDesktop && !fTileBackgroundImage)

   {

     rc.top = rcBlt.bottom + 5;

   }

   else

   {

     rc.top = rc.top + (rc.bottom - rc.top) / 2 - 8;

   }

   ::DrawText(hdc, wszVersion, -1, &rc, DT_SINGLELINE | DT_CENTER | DT_TOP);

   #endif

上面的代码就是如果没有定义SHIP_BUILD这个环境变量,就不会编译这部分代码,自然就不会再桌面上显示这些信息了,下面总结如何去除这些信息的办法:

1.       定义环境变量SHIP_BUILD

定义环境变量SHIP_BUILD,需要在WINCE6.0系统工程“property page -> build options”下面对“Enble build ship”打钩,如下图所示:

图1

这样就定义了环境变量SHIP_BUILD,从而就不编译上面的代码,也不会显示这些信息了。另外我注意到选择“Enble build ship”前后编译nk.bin的大小分别为22848KB和22665KB,少了183KB,这是因为选上“Enble build ship”后会把RETAILMSG和DEBUGMSG都给mask掉了,这样自然生成的系统会少一些,不便之处就是系统不能输出调试信息。

 

2.       改变编译上面代码的条件

因为我们需要系统可以输出调试信息,所以第1种办法就不太合适(不过倒是适合于编译发布的系统),我把上面代码的编译条件由#ifndef SHIP_BUILD改为#ifdef SHIP_BUILD,然后到\WINCE600\PUBLIC\SHELL\OAK\HPC\CESHELL\UI目录下rebuild,然后选择clean sysgen,这样就可以保证串口调试信息的输出,也可以不再显示上面的信息。

3.       屏蔽掉上面的代码

当然,如果我们不需要在桌面上显示那些信息,可以把上面的代码注释掉。

原创粉丝点击