﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Learn 3G</title><link>http://www.cppblog.com/maolxu/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:08:07 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:08:07 GMT</pubDate><ttl>60</ttl><item><title>使用Symbian OS字符串描述符编程(二）</title><link>http://www.cppblog.com/maolxu/archive/2010/04/19/112968.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Mon, 19 Apr 2010 03:55:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/04/19/112968.html</guid><description><![CDATA[<table style="TABLE-LAYOUT: fixed; WIDTH: 100%">
    <tbody>
        <tr>
            <td>
            <div class=cnt id=blog_text>
            <p>(<font size=4>二) Contacts应用程序<br><br>　　</font><a title="Windows CE" href="http://bbs.chinaeda.cn/list.asp?boardid=32"><font color=#0000ff size=4><u>Windows</u></font></a><font size=4> Mobile 5.0中的Contacts应用程序被进一步增强（见图8）。图标现在被显示在个人信息的附近。另外,现在你能把一幅相片依附到一个联系人上（如果你的Pocket PC有一个内建的照相机的话，这很容易做到）。如果你的Pocket PC电话编辑设备支持Caller ID,这个人的相片将在他/她每次打电话时被显示出来。而且，无论何时他/她发来一个邮件，该相片也被显示。<br><br></font>
            <table class=FCK__ShowTableBorders width="90%" align=center border=0>
                <tbody>
                    <tr>
                        <td>
                        <div align=center twffan="done"><font size=4><img src="http://www.chinaeda.cn/upload/2008_03/080327154066281.jpg" border=0 twffan="done" onxxxx="var image=new Image();image.src=this.src;if(image.width>0 &amp;&amp; image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}"><br>图 8.Contacts应用程序</font></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            <br><font size=4>　　刚才讨论的特点也在Smartphone中得到支持(见图9)。<br><br></font>
            <table class=FCK__ShowTableBorders width="90%" align=center border=0>
                <tbody>
                    <tr>
                        <td>
                        <div align=center twffan="done"><font size=4><img src="http://www.chinaeda.cn/upload/2008_03/080327154066282.jpg" border=0 twffan="done" onxxxx="var image=new Image();image.src=this.src;if(image.width>0 &amp;&amp; image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}"><br>图 9.Smartphone中的Contacts应用程序</font></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            <br><font size=4>　　(三) 移动Word<br><br>　　Pocket Word现在被名称为Word Mobile(见图10)。事实上,微软已经从它的大多数应用程序中删除掉了"Pocket"的名字（见下面几节中的例子）。<br><br></font>
            <table class=FCK__ShowTableBorders width="90%" align=center border=0>
                <tbody>
                    <tr>
                        <td>
                        <div align=center twffan="done"><font size=4><img src="http://www.chinaeda.cn/upload/2008_03/080327154066283.jpg" border=0 twffan="done" onxxxx="var image=new Image();image.src=this.src;if(image.width>0 &amp;&amp; image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}"><br>图 10.</font><a title="Windows CE" href="http://bbs.chinaeda.cn/list.asp?boardid=32"><font color=#0000ff size=4><u>Windows</u></font></a><font size=4> Mobile 5.0中的移动Word</font></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            <br><font size=4>　　Word Mobile中的一个重要之处在于它能够显示嵌入的图像。图11显示出一个通过Hotmail收到的word文档，然后使用Word Mobile打开之。不是显示一个其上有一个叉号的盒子（如</font><a title="Windows CE" href="http://bbs.chinaeda.cn/list.asp?boardid=32"><font color=#0000ff size=4><u>Windows</u></font></a><font size=4> Mobile 2003中的Pocket Word），而是显示嵌入的图像。<br><br></font>
            <table class=FCK__ShowTableBorders width="90%" align=center border=0>
                <tbody>
                    <tr>
                        <td>
                        <div align=center twffan="done"><font size=4><img src="http://www.chinaeda.cn/upload/2008_03/080327154066284.jpg" border=0 twffan="done" onxxxx="var image=new Image();image.src=this.src;if(image.width>0 &amp;&amp; image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}"><br>图 11.在Word文档中显示一幅图像</font></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            <br><font size=4>　　(四) 移动Excel<br><br>　　袖珍Excel也称作移动Excel。在移动Excel中，现在你可以显示在工作表中的各种图表(见图12)。 <br><br></font>
            <table class=FCK__ShowTableBorders width="90%" align=center border=0>
                <tbody>
                    <tr>
                        <td>
                        <div align=center twffan="done"><font size=4><img src="http://www.chinaeda.cn/upload/2008_03/080327154066285.jpg" border=0 twffan="done" onxxxx="var image=new Image();image.src=this.src;if(image.width>0 &amp;&amp; image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}"><br>图12.在移动Excel中显示图表</font></div>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p>&#160;</p>
            <p><font size=3><strong>CTIC.<font style="LINE-HEIGHT: 20px" face=宋体>川科创新</font></strong><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(255,0,0); LINE-HEIGHT: 20px"> </span><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 20px">3G<font style="LINE-HEIGHT: 20px" face=宋体>嵌入式技术教育专家</font><font style="LINE-HEIGHT: 20px" face="Times New Roman">(</font></span><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(255,102,0); LINE-HEIGHT: 20px">学<font style="LINE-HEIGHT: 20px" face="Times New Roman">3G</font><font style="LINE-HEIGHT: 20px" face=宋体>送手机</font></span></font><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 20px">)</span></p>
            <p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/ke/jiuyeban.shtml"><span><u><font color=#0000ff>3G<font style="LINE-HEIGHT: 18px" face=宋体>手机软件工程师</font></font></u></span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; TEXT-DECORATION: none">培训</span><span><u><font color=#0000ff>班</font></u></span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; TEXT-DECORATION: none"> 现热招中 报名即 </span><span style="FONT-WEIGHT: bold; FONT-SIZE: 10.5pt; COLOR: rgb(255,0,0); LINE-HEIGHT: 18px; TEXT-DECORATION: none">送3G<font style="LINE-HEIGHT: 18px" face=宋体>手机 </font></span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; TEXT-DECORATION: none">一部</span></a></span></p>
            <p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px">咨询电话：<font style="LINE-HEIGHT: 18px" face="Times New Roman">400-702-8828&nbsp;&nbsp; (028)6862 6028</font></span></p>
            <p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px"><font face="Times New Roman">网址：</font><font size=4> </font></span><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/"><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; TEXT-DECORATION: none"><font size=4>www.ctic.cc</font></span></a></span><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px"><font size=4> </font></span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cppblog.com/maolxu/aggbug/112968.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-04-19 11:55 <a href="http://www.cppblog.com/maolxu/archive/2010/04/19/112968.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Symbian OS字符串描述符编程（—）</title><link>http://www.cppblog.com/maolxu/archive/2010/04/16/112783.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Fri, 16 Apr 2010 09:52:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/04/16/112783.html</guid><description><![CDATA[<div class=c><span style="FONT-SIZE: 14px">1. 简介<br><br>　　当我刚开始学习<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>时,我遇到的第一件事情就是<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a> OS字符串的处理和使用问题。要学习<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>字符串的使用，必须费一定脑筋才行。但是一旦你掌握了其中的要领，它就变得容易多了。<br><br>
<div class=guanggao twffan="done"><span id=contentAdv twffan="done"></span></div>
　　因此，下面我将解释我是怎样学习基本的<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a> OS字符串处理并对之加以记忆的。<br><br>　　注意，理解本文的前提是对<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>操作系统的工作机理有一定了解。<br><br>　　2. 背景<br><br>　　你要做的第一件事情是记住字符串描述符层次结构图。这是很重要的，因为以后所有你要使用的五个描述符都派生于某些类，你必须了解它们分别是从哪些类派生的，以便确定应该使用哪些特别描述符及其使用场所。本文中我不准备解释什么是缓冲描述符及堆描述符的含义，以及可修改的描述符和不可修改的描述符是什么含义。但是，我相信你必须对上面的术语有足够的了解才行。<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>描述符层次结构看起来相当绝妙。你可以参考下图，该图来源于newlc。<br><br>　　3. TPtrC&lt;n&gt;用法<br><br>　　其字面含义是"一个指向不可被操作的数据的指针"。关于TPtrC&lt;n&gt;，首先要记住，它不包含对自己的一些操作函数，而只含有构造器和设置方法。另外，既然它派生于TDesC，它就包含了TDesC的所有功能。<br><br>　　指针指向数据的方式有下面两种：<br><br>　　&#183;先创建一个空的TPtrC&lt;N&gt;，然后用Set(...)函数把它指向一些数据。 <br><br>　　&#183;通过使用任何一个重载的构造函数，在构造过程中传递数据。<br><br>　　让我们通过下面几个例子来看一下上面的描述：<br><br>　　实例1:-从TBuf和TbufC中取得TPtrC:<br><br>
<table borderColor=#cccccc width="90%" align=center bgColor=#e3e3e3 border=1>
    <tbody>
        <tr>
            <td>LIT(KText , "Test Code");<br>TBufC&lt;10&gt; Buf ( KText ); OR(/) TBuf&lt;10&gt; Buf ( KText );<br>// 使用构造器创建TPtr<br>TPtrC Ptr (Buf);<br>//使用成员函数创建TPtr<br>TPtrC Ptr1;<br>Ptr1.Set(Buf);</td>
        </tr>
    </tbody>
</table>
<br>　　实例2:-从TText*中取得TPtrC:<br><br>　　下面的实例使用了TText16:<br><br>
<table borderColor=#cccccc width="90%" align=center bgColor=#e3e3e3 border=1>
    <tbody>
        <tr>
            <td>TText * text = _S("Hello World\n");<br>TPtrC ptr(text);<br>// 或<br>TPtrC Ptr1;<br>Ptr1.Set(text);<br>//要只存储Ttext的一部分，我们可以使用下面的语句 <br>//这个描述符指针将只存储Hello<br>TPtrC ptr4(text,5);</td>
        </tr>
    </tbody>
</table>
<br>　　实例3:-从另外一个TPtrC取得TPtrC:<br><br>　　你可以容易地把一个TPtrC赋值给另一个TPtrC。<br><br>
<table borderColor=#cccccc width="90%" align=center bgColor=#e3e3e3 border=1>
    <tbody>
        <tr>
            <td>TText * text = _S("Hello World\n");<br>TPtrC ptr(text);<br>//从另外一个TPtrC取得TPtrC<br>TPtrC p1(ptr);<br>//或<br>TPtrC p2;<br>p2.Set(ptr);</td>
        </tr>
    </tbody>
</table>
<br>　　实例4:-从TPtrC中取得TText *: <br><br>　　我们可以通过Ptr()成员使用来从TPtrC中取得TText *。<br><br>
<table borderColor=#cccccc width="90%" align=center bgColor=#e3e3e3 border=1>
    <tbody>
        <tr>
            <td>//设置TPtrC<br>_LIT(KText,"Test Code");<br>TBufC&lt;10&gt; Buf ( KText ); <br>TPtrC Ptr1 (Buf);<br>//取得TText*<br>TText* Text1 = (TText *)Ptr1.Ptr();</td>
        </tr>
    </tbody>
</table>
<p><br>。 </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font face=Arial></font>&nbsp;<font size=3><strong>CTIC.<font style="LINE-HEIGHT: 20px" face=宋体>川科创新</font></strong><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(255,0,0); LINE-HEIGHT: 20px; FONT-FAMILY: 宋体">&nbsp;</span><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 20px; FONT-FAMILY: 宋体">3G<font style="LINE-HEIGHT: 20px" face=宋体>嵌入式技术教育专家</font><font style="LINE-HEIGHT: 20px" face="Times New Roman">(</font></span><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(255,102,0); LINE-HEIGHT: 20px; FONT-FAMILY: 宋体">学<font style="LINE-HEIGHT: 20px" face="Times New Roman">3G</font><font style="LINE-HEIGHT: 20px" face=宋体>送手机</font></span></font><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 20px; FONT-FAMILY: 宋体">)</span> </p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/ke/jiuyeban.shtml"><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; TEXT-DECORATION: none">3G<font style="LINE-HEIGHT: 18px" face=宋体>手机软件工程师</font></span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none">培训</span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; TEXT-DECORATION: none">班</span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none">&nbsp;现热招中&nbsp;报名即&nbsp;</span><span style="FONT-WEIGHT: bold; FONT-SIZE: 10.5pt; COLOR: rgb(255,0,0); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none">送3G<font style="LINE-HEIGHT: 18px" face=宋体>手机&nbsp;</font></span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none">一部</span></a></span></p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px; FONT-FAMILY: 宋体">咨询电话：<font style="LINE-HEIGHT: 18px" face="Times New Roman">400-702-8828&nbsp;&nbsp; (028)6862 6028</font></span></p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px; FONT-FAMILY: 宋体"><font face="Times New Roman">网址：</font><font size=4>&nbsp;</font></span><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/"><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none"><font size=4>www.ctic.cc</font></span></a></span><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px; FONT-FAMILY: 宋体"><font size=4>&nbsp;</font></span></p>
</span></div>
<img src ="http://www.cppblog.com/maolxu/aggbug/112783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-04-16 17:52 <a href="http://www.cppblog.com/maolxu/archive/2010/04/16/112783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Symbian平台智能手机突破一亿</title><link>http://www.cppblog.com/maolxu/archive/2010/04/15/112654.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Thu, 15 Apr 2010 05:14:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/04/15/112654.html</guid><description><![CDATA[<span style="FONT-SIZE: 14px">&nbsp;
<p><font face=Arial>11月17日消息，据外电报道，<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>公司周四宣布，全球使用其操作系统的智能手机已经突破1亿大关，目前全球有250多个网络运营商的客户采用了<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>操作系统手机。</font></p>
<p><font face=Arial>　　近几个月来智能手机的增长浪潮推动了<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>操作系统手机的增长。第三季度共销出了1300万部<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>智能手机，比去年同期的850万部增长了52%。</font></p>
<p><font face=Arial>　　由于新<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>手机的功能改进和较低的格，全球<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>操作系统手机的出货数量创下新高。</font></p>
<p><font face=Arial>　　<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>公司CEO Clifford发表声明称：我们看到了推动智能手机增长的两种趋势，第一，虽然智能手机在大多数成熟和发达国家市场有着最高的普及率，但未来最高的增长率有可能是那些高速增长的发展中国家市场，比如中国、印度和巴西。在今后五年内，发展中国家市场有可能占全球智能手机销售额的50%。第二，青少年手机市场也是智能手机市场的增长机会。</font></p>
<p><font face=Arial>　　<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>公司发言人称：最近几个月来，<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>手机在美国市场获得高速增长。特别是近几周来，由于Cingular无线公司向用户推荐诺基亚E62手机，<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>手机普及率大增。诺基亚E62手机采用了QWERTY键盘，与运营商签约两年的用户可用99美元价格拿到这款手机。</font></p>
<p><font face=Arial>　　诺基亚公司是<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>公司最大股东、其他股东有爱立信公司、索尼爱立信公司、松下移动通讯公司、西门子公司和三星电子公司，它们分别拥有较小的股权。其他手机制造商则需要<a title=Symbian手机应用开发工程师培训班 href="http://www.chinaeda.com/ke/mob.shtml"><u><font color=#0000ff>Symbian</font></u></a>的转让授权。</font></p>
<p><font face=Arial></font>&nbsp;</p>
<p><font face=Arial></font>&nbsp;<font size=3><strong>CTIC.<font style="LINE-HEIGHT: 20px" face=宋体>川科创新</font></strong><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(255,0,0); LINE-HEIGHT: 20px; FONT-FAMILY: 宋体">&nbsp;</span><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 20px; FONT-FAMILY: 宋体">3G<font style="LINE-HEIGHT: 20px" face=宋体>嵌入式技术教育专家</font><font style="LINE-HEIGHT: 20px" face="Times New Roman">(</font></span><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: rgb(255,102,0); LINE-HEIGHT: 20px; FONT-FAMILY: 宋体">学<font style="LINE-HEIGHT: 20px" face="Times New Roman">3G</font><font style="LINE-HEIGHT: 20px" face=宋体>送手机</font></span></font><span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 20px; FONT-FAMILY: 宋体">)</span> </p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/ke/jiuyeban.shtml"><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; TEXT-DECORATION: none">3G<font style="LINE-HEIGHT: 18px" face=宋体>手机软件工程师</font></span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none">培训</span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; TEXT-DECORATION: none">班</span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none">&nbsp;现热招中&nbsp;报名即&nbsp;</span><span style="FONT-WEIGHT: bold; FONT-SIZE: 10.5pt; COLOR: rgb(255,0,0); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none">送3G<font style="LINE-HEIGHT: 18px" face=宋体>手机&nbsp;</font></span><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none">一部</span></a></span></p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px; FONT-FAMILY: 宋体">咨询电话：<font style="LINE-HEIGHT: 18px" face="Times New Roman">400-702-8828&nbsp;&nbsp; (028)6862 6028</font></span></p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0pt 0px; LINE-HEIGHT: 18px; PADDING-TOP: 0px"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px; FONT-FAMILY: 宋体"><font face="Times New Roman">网址：</font><font size=4>&nbsp;</font></span><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/"><span style="FONT-SIZE: 10.5pt; COLOR: rgb(31,58,135); LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; TEXT-DECORATION: none"><font size=4>www.ctic.cc</font></span></a></span><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 18px; FONT-FAMILY: 宋体"><font size=4>&nbsp;</font></span></p>
</span>
<img src ="http://www.cppblog.com/maolxu/aggbug/112654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-04-15 13:14 <a href="http://www.cppblog.com/maolxu/archive/2010/04/15/112654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>APN symbian手机上的接入点编程 一</title><link>http://www.cppblog.com/maolxu/archive/2010/03/29/110813.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Mon, 29 Mar 2010 03:40:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/03/29/110813.html</guid><description><![CDATA[<div id="PublishedByWebStory-[5]1_558A4577BEC24109B9B7159AB291AC31_786CE292FA024F3AA957D6F65BE0175D"><p style="TEXT-ALIGN: left; TEXT-INDENT: -18.75pt; FONT-FAMILY: 宋体; MARGIN-LEFT: 18.75pt" class="MsoNormal" align="left"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt"><span style="FONT-FAMILY: 宋体">1.<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span></span></span></strong><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">Overview</span></strong></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">特定接入点的查找</span><span style="FONT-FAMILY: 宋体">/</span><span style="FONT-FAMILY: 宋体">创建应该是这样的一个过程。首先你从一个配置文件里面读出你要选择的</span><span style="FONT-FAMILY: 宋体">AP</span><span style="FONT-FAMILY: 宋体">的名字（一般情况下我们是知道要用那个接入点的，而且为了方便配置一般也把它写到配置文件中去）。在得到这个名字后，我们就遍历机器上所有的接入点，查找是否有我们需要的，如果有我们就返回那个接入点的索引，如果没有就要在设备上创建一个</span><span style="FONT-FAMILY: 宋体">AP</span><span style="FONT-FAMILY: 宋体">，创建这个</span><span style="FONT-FAMILY: 宋体">AP</span><span style="FONT-FAMILY: 宋体">的参数也存在配置文件中，成功创建后返回其索引以备后用。</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: -18.75pt; FONT-FAMILY: 宋体; MARGIN-LEFT: 18.75pt" class="MsoNormal" align="left"><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt"><span style="FONT-FAMILY: 宋体">2.<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span></span></span></strong><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt">Code</span></strong></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">//<span class="Apple-converted-space">&nbsp;</span></span></strong><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: blue">从配置文件中读出接入点的名称</span></strong></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TBuf&lt;64&gt; apnConnName;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">GetAPNnameFromConfig(apnConnName);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">apnConnName.LowerCase();</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">//<span class="Apple-converted-space">&nbsp;</span></span></strong><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: blue">遍历通信数据库，寻找对应的接入点的索引</span></strong></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TUint32 iapId(-1);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CCommsDatabase* commDb = CCommsDatabase::NewL();</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CleanupStack::PushL(commDb);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CCommsDbTableView* view = commDb-&gt;OpenTableLC(TPtrC(<span style="FONT-FAMILY: 宋体; COLOR: red">IAP</span>));</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TFileName iapName;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">User::LeaveIfError(view-&gt;GotoFirstRecord());</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">do</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">{</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>view-&gt;ReadTextL(TPtrC(COMMDB_NAME), iapName);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>iapName.LowerCase();</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>if (!iapName.Compare(*apName))</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>{</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>view-&gt;ReadUintL(TPtrC(COMMDB_ID), iapId);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>break;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>}</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">}</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">While (KErrNone == view-&gt;GotoNextRecord());</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CleanupStack::PopAndDestroy(2);<span style="FONT-FAMILY: 宋体"><span class="Apple-converted-space">&nbsp;</span></span>// view, commDb</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CleanupStack::PopAndDestroy(apName);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">//<span class="Apple-converted-space">&nbsp;</span></span></strong><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: blue">找到就返回</span></strong></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">if (iapId<span style="FONT-FAMILY: 宋体"><span class="Apple-converted-space">&nbsp;</span></span>!= -1)</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>return iapId;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">//<span class="Apple-converted-space">&nbsp;</span></span></strong><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: blue">没有找到就创建一个，从配置文件中读出参数</span></strong></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TInt apnDataBearer;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TBuf&lt;64&gt; apnAccessPointName;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TBool apnAuthentication;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TBuf&lt;64&gt; apnProxyNameAddr;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TInt apnProxyPortNumber;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">GetAPNBearerFromConf(apnDataBearer);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">GetAPNnameFromConf(apnAccessPointName);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">GetAPNAuthFromConf(apnAuthentication);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">GetAPNProxyNameFromConf(apnProxyNameAddr);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">GetAPNProxyPortFromConf(apnProxyPortNumber);</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">//</span></strong><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: blue">创建一个接入点</span></strong></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CApAccessPointItem* apn = CApAccessPointItem::NewLC();</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">apn-&gt;SetNamesL( apnConnName );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">apn-&gt;SetBearerTypeL( (TApBearerType)apnDataBearer );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">apn-&gt;WriteLongTextL( EApGprsAccessPointName, apnAccessPointName );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">if( apnAuthentication )</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">{</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>apn-&gt;WriteBool( EApGprsDisablePlainTextAuth, ETrue );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>apn-&gt;WriteBool( EApGprsDisablePlainTextAuth, ETrue );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">}</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">else</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">{</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>apn-&gt;WriteBool( EApGprsDisablePlainTextAuth, EFalse );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">}</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">if( apnProxyNameAddr.Length() )</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">{</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>apn-&gt;WriteLongTextL( EApProxyServerAddress, apnProxyNameAddr );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>apn-&gt;WriteUint( EApProxyPortNumber, (TUint)apnProxyPortNumber );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">}</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CCommsDatabase* commDb = CCommsDatabase::NewL();</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CleanupStack::PushL( commDb );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CApDataHandler* handler = CApDataHandler::NewLC( *commDb );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">TInt commErr = commDb -&gt;BeginTransaction();</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">newApId = (TInt32)handler-&gt;CreateFromDataL( *apn );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">commErr = commDb-&gt;CommitTransaction();</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CleanupStack::PopAndDestroy( handler );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CleanupStack::PopAndDestroy( commDb );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">CleanupStack::PopAndDestroy( apn );</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 宋体">return newApId;</span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left">&nbsp;</p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left">&nbsp;</p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体" class="MsoNormal" align="left">&nbsp;</p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><span style="FONT-FAMILY: 宋体"><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold"><br class="Apple-interchange-newline"/> CTIC.<font style="LINE-HEIGHT: 20px" face="宋体">川科创新</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">&nbsp;</span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold">3G<font style="LINE-HEIGHT: 20px" face="宋体">嵌入式技术教育专家</font><font style="LINE-HEIGHT: 20px" face="Times New Roman">(</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; COLOR: rgb(255,102,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">学<font style="LINE-HEIGHT: 20px" face="Times New Roman">3G</font><font style="LINE-HEIGHT: 20px" face="宋体">送手机</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold">)</span></span></p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/ke/jiuyeban.shtml"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">3G<font style="LINE-HEIGHT: 18px" face="宋体">手机软件工程师</font></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">培训</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">班</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">&nbsp;现热招中&nbsp;报名即&nbsp;</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 10.5pt; FONT-WEIGHT: bold; TEXT-DECORATION: none">送3G<font style="LINE-HEIGHT: 18px" face="宋体">手机&nbsp;</font></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">一部</span></a></span></p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">咨询电话：<font style="LINE-HEIGHT: 18px" face="Times New Roman">400-702-8828&nbsp;&nbsp;</font></span><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">www.ctic.cc</span></a></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">&nbsp;</span></p></div><img src ="http://www.cppblog.com/maolxu/aggbug/110813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-03-29 11:40 <a href="http://www.cppblog.com/maolxu/archive/2010/03/29/110813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>屏幕/内存同步原则在Symbian编程中的应用</title><link>http://www.cppblog.com/maolxu/archive/2010/03/29/110811.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Mon, 29 Mar 2010 03:34:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/03/29/110811.html</guid><description><![CDATA[<div id="PublishedByWebStory-[5]1_7DBD55BEE7C349A386C66136A8A8AAB9_492DC74141674854A6B0D583296F0F8D"><table style="FONT-FAMILY: 宋体" class="FCK__ShowTableBorders"> <tbody style="FONT-FAMILY: 宋体"> <tr style="FONT-FAMILY: 宋体"> <td style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; FONT-FAMILY: 宋体; BORDER-TOP: rgb(0,0,0) 1px solid; BORDER-RIGHT: rgb(0,0,0) 1px solid"> <p style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><font style="FONT-FAMILY: 宋体" size="5" face="仿宋"><strong>成员变量</strong></font></font></font></span></p> </td> <td style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; FONT-FAMILY: 宋体; BORDER-TOP: rgb(0,0,0) 1px solid; BORDER-RIGHT: rgb(0,0,0) 1px solid"> <p style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><font style="FONT-FAMILY: 宋体" size="5" face="仿宋"><strong>自</strong>动变量</font></font></font></span></p> </td> </tr> <tr style="FONT-FAMILY: 宋体"> <td style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; FONT-FAMILY: 宋体; BORDER-TOP: rgb(0,0,0) 1px solid; BORDER-RIGHT: rgb(0,0,0) 1px solid"> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><font style="FONT-FAMILY: 宋体" size="5" face="仿宋"><strong>分配</strong></font></font></font></span></p> </td> <td style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; FONT-FAMILY: 宋体; BORDER-TOP: rgb(0,0,0) 1px solid; BORDER-RIGHT: rgb(0,0,0) 1px solid"> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">我们最常用的办法就是在二次构造函数（</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">ConstructL()</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">）中一次性的分配。很显然有时侯不是所有的对象都能用到，既然用不到就代表了浪费。</span></font></strong></font></font></font></p> </td> <td style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; FONT-FAMILY: 宋体; BORDER-TOP: rgb(0,0,0) 1px solid; BORDER-RIGHT: rgb(0,0,0) 1px solid"> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">参见第</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">16</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">条军规</span></font></strong></font></font></font></p> </td> </tr> <tr style="FONT-FAMILY: 宋体"> <td style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; FONT-FAMILY: 宋体; BORDER-TOP: rgb(0,0,0) 1px solid; BORDER-RIGHT: rgb(0,0,0) 1px solid"> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><font style="FONT-FAMILY: 宋体" size="5" face="仿宋"><strong>删除</strong></font></font></font></span></p> </td> <td style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; FONT-FAMILY: 宋体; BORDER-TOP: rgb(0,0,0) 1px solid; BORDER-RIGHT: rgb(0,0,0) 1px solid"> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">既然不是所有的对象都能用到，那么一定有一些对象在析构函数之前就失去使用意义了，这时我们需要使用一种方法来对失去使用意义的对象进行判断，然后删除它们，我认为定义一个状态码</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">(iCurrentView)</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">是挺不错的选择。我在下面的代码中就是这么干的。</span></font></strong></font></font></font></p> </td> <td style="BORDER-BOTTOM: rgb(0,0,0) 1px solid; BORDER-LEFT: rgb(0,0,0) 1px solid; FONT-FAMILY: 宋体; BORDER-TOP: rgb(0,0,0) 1px solid; BORDER-RIGHT: rgb(0,0,0) 1px solid"> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">也会遇到成员变量一样的问题</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">但函数工作的过程基本是线性的</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">失去使用价值就删除好了</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">.</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">但要记住</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">如果一个对象被删除</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">而指向它的指针仍然存在</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">则此指针应该被置为</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">NULL</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">以防非法访问或者二次删除</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">.</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">（参考第</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">8</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">和第</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">10</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">条军规）</span></font></strong></font></font></font></p> </td> </tr> </tbody> </table> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 27px; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">我们结合两个例子来讲一下：</span></font></strong></font></font></font></p> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 27px; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><font style="FONT-FAMILY: 宋体" size="1"><font style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">首先是关于视图（</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">View</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">）的屏幕同步</span></font></font></font></strong></font></p> <div style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">void</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>CXXXAppUi::ConstructL()</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>{</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>//??????..</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>iCurrentView = ENone;</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//iCurrentView为一个TViewId枚举类型.表示当前视图状态,初始值置为空</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">(ENone)</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">ChangeViewL(EMainView);</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//EMainView为主视图状态,即程序载入时的初始视图</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>//????????</strong></font></span></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">}</span></font></strong></font></p> </div> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 27px; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">这里我没有使用常见的把所有成员变量在</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">ConstructL()</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">函数中一次分配的方法</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">而是将一个状态变量</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">(iCurrentView)</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">初始化</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">而后传递给一个</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">ChangeViewL</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">的</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">private</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">函数</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">让</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">ChangeViewL</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">根据当前视图的状态来删除当前视图的成员变量，初始化新视图的成员变量</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">,</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">对于内存的节约显而易见</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">.</span></font></strong></font></p> <div style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">void</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>CXXXAppUi::ChangeViewL(TViewId aNewView)</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>{</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">if</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">(aNewView == iCurrentView)</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//新视图状态==当前视图状态</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">return</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">switch</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">(iCurrentView)</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//依据状态删除当前视图</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>{</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">case</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>EMainView:</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">RemoveFromStack(iAppView);</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//iAppView是一个视图类,为初始视图</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">delete</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>iAppView;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>iAppView = NULL;</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">break</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">case</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>EWordListView:</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">RemoveFromStack(iListboxView);</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//列表视图</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">delete</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>iListboxView;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>iListboxView = NULL;</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">break</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">case</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>ENone:</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">default</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">:</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">break</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>}</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">switch</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">(aNewView)</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//依据传入的aNewView状态创建新视图</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>{</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">case</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>EMainView:</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>iAppView = CXXXAppView::NewL(ApplicationRect());</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>AddToStackL(iAppView);</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">break</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">case</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>EWordListView:</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>iListboxView = CWordstoreListboxView::NewL(ClientRect());</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>AddToStackL(iListboxView);</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">break</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">case</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>ENone:</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">default</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">:</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">break</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">;</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>}</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">iCurrentView = aNewView;</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//更新当前视图</span></font></strong></font></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">}</span></font></strong></font></p> </div> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 27px; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 36px; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">关于</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">Listbox</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">的屏幕同步</span></font></strong></font></p> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 36px; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml"><strong><font face="仿宋">Symbian</font></strong></a></span><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">提供的</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">Listbox</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">示例简明易懂，遗憾的是代码可读性和运行效率天生有着不可调和的矛盾，特别是在</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a></span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">这种资源受限设备之中体现的更是淋漓尽致。让我们来看看</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a></span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">的示例代码：</span></font></strong></font></p> <div style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">void</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>CCustomerstoreListboxView::SetListItems(CDesCArrayFlat* aNewItems)</span></font></strong></font></div> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>{</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>CTextListBoxModel* model = iListBox-&gt;Model();</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">model-&gt;SetItemTextArray(aNewItems);</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//通过数组指定Listbox内容及长度</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>model-&gt;SetOwnershipType( ELbmOwnsItemArray );</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>iListBox-&gt;HandleItemAdditionL();</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">if</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">(aNewItems-&gt;Count()&gt;0)</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>{</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>iListBox-&gt;SetCurrentItemIndexAndDraw(0);</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>}</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>//?????????????????</strong></font></span></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">}</span></font></strong></font></p> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 36px; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">简明易懂，接受一个描述符数组，把它传递给</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">Listbox</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">，而我一开始也是这么干的，直到有一天我感觉到数组的长度可能超过</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">100</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">甚至更多。我没有真机用来调试，但任谁也可以想象出一个长达</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">100</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">的</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">Listbox</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">可能给一个手机带来的灾难性后果。尽管屏幕上只能显示三行列表，但是内存中的数量我们却无从控制。解决方案理论上讲很简单（因为实际操作起来因软件而异比较麻烦），或许你已经想到了，</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 12pt">原则就是保持内存中的内容与屏幕上的内容一致。</span></font></strong></font></p> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 36px; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">在</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">CEikListbox</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">类中有一个名为</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">HandleScrollEventL的虚函数,可以监听滚动条的上下滚动。不要直接用<a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a>提供的Listbox类了，可以通过继承来实现对HandleScrollEventL的定义。</span></font></strong></font></p> <div style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">void</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>CXXXListbox::HandleScrollEventL(CEikScrollBar*<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">aScrollBar,TEikScrollEvent aEventType)</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>{</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">Index=CurrentItemIndex();</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//获取Listbox当前索引值</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">switch</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">(aEventType)</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>{</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">case</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>EEikScrollDown:</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//滚动条下移</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>//读取第Index+1的listbox值，删除Index-3的listbox。</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,255); FONT-SIZE: 9pt">case</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><span class="Apple-converted-space">&nbsp;</span>EEikScrollUp:</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt">//滚动条上移</span></font></strong></font></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>//读取第Index-1的listbo值，删除第Index+3的listbox值，</strong></font></span></p> <p style="TEXT-ALIGN: left; FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt"><font style="FONT-FAMILY: 宋体" color="#FFFFFF" face="仿宋"><strong>}</strong></font></span></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 9pt">}</span></font></strong></font></p> </div> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 36px; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; FONT-FAMILY: 宋体"></p> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 36px; FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">与此同时还要对于数据库引擎进行修改（如果你是从数据库中读取</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">Listbox</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">的值的话</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">），像诸如</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">GetAllCustomer</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">之类的函数无论如何不可用了，我们需要的是逐条读取的函数了。</span></font></strong></font></p> <p style="TEXT-ALIGN: justify; TEXT-INDENT: 42px; FONT-FAMILY: 宋体"></p> <p><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">上面的两个例子大同小异，其实在</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a></span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">编程中有很多类似的应用，比如这个游戏中，我就在</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">Rect().iTl.iX</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">和</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">Rect.iBr.iX</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">两个边界加了对进出潜艇的检测，至于对</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">鱼雷的检测吗，留作习题自己想想看了。在</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Windows CE" href="http://bbs.chinaeda.cn/list.asp?boardid=32">Windows</a></span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">编程中有可能是用空间换时间，在</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a></span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">中我们或许应改为时间换空间了。另外就是不要过于相信模拟器，在模拟器中运行的很顺利的程序在手机上有可能一塌糊涂。可以参考下面的《配置</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a><span class="Apple-converted-space">&nbsp;</span>WINS Emulator</span><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt">》一文对模拟器进行一个较贴近真实设备的配置。最后说一句：“浪费是可耻的”。</span></font></strong></font></p> <p>&nbsp;</p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="FONT-FAMILY: 宋体; COLOR: rgb(0,0,0); FONT-SIZE: 12pt"><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold"><br class="Apple-interchange-newline"/> CTIC.<font style="LINE-HEIGHT: 20px" face="宋体">川科创新</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">&nbsp;</span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold">3G<font style="LINE-HEIGHT: 20px" face="宋体">嵌入式技术教育专家</font><font style="LINE-HEIGHT: 20px" face="Times New Roman">(</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; COLOR: rgb(255,102,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">学<font style="LINE-HEIGHT: 20px" face="Times New Roman">3G</font><font style="LINE-HEIGHT: 20px" face="宋体">送手机</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold">)</span></span></font></strong></font></p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><font style="FONT-FAMILY: 宋体" color="#FFFFFF"><strong><font face="仿宋"><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/ke/jiuyeban.shtml"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">3G<font style="LINE-HEIGHT: 18px" face="宋体">手机软件工程师</font></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">培训</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">班</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">&nbsp;现热招中&nbsp;报名即&nbsp;</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 10.5pt; FONT-WEIGHT: bold; TEXT-DECORATION: none">送3G<font style="LINE-HEIGHT: 18px" face="宋体">手机&nbsp;</font></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">一部</span></a></span></font></strong></font></p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">咨询电话：<font style="LINE-HEIGHT: 18px" face="Times New Roman">400-702-8828&nbsp;&nbsp;</font></span><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">www.ctic.cc</span></a></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">&nbsp;</span></p> <p><br class="Apple-interchange-newline"/></p></div><img src ="http://www.cppblog.com/maolxu/aggbug/110811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-03-29 11:34 <a href="http://www.cppblog.com/maolxu/archive/2010/03/29/110811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Symbian编程总结-图形图像篇-使用双缓存进行图形的绘制</title><link>http://www.cppblog.com/maolxu/archive/2010/03/29/110808.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Mon, 29 Mar 2010 03:30:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/03/29/110808.html</guid><description><![CDATA[<div id="PublishedByWebStory-[5]1_7FEAC3180A454AAFA43DE522AD08A184_E7CBB518418145FD99A945D702021E72"><p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">所谓“双缓冲”，指的是在绘图时并不是直接绘到屏幕上，而是在内存中开辟一个缓冲区，在这个缓冲区里完成所有的绘图后，直接将其“粘贴”到屏幕上。采用双缓冲技术，由于绘图操作大部分在内存中完成，所以绘图速度没有太大的制约；此外，当进行复杂的绘图操作时，使用双缓冲技术可以有效的防止画面的闪烁。</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><strong style="FONT-FAMILY: 宋体">一、双缓存技术在J2ME中的实现</strong></span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">在J2ME中，实现双缓存绘制图形可以通过以下步骤实现：</span></p> <ol style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">首先创建一个类成员变量Image对象，此Image对象的图像尺寸为屏幕尺寸大小。<br style="FONT-FAMILY: 宋体"/> 如：如果屏幕大小为240*320，则使用以下代码创建：</span> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">private Image img;<br style="FONT-FAMILY: 宋体"/> img = Image.createImage(240, 320);</span></p> </li> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">创建一个类成员变量Graphics对象，此Graphics对象指向img的Graphics对象：</span> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">private Graphics g;<br style="FONT-FAMILY: 宋体"/> g = img.getGraphics();</span></p> </li> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">以上img对象即为内存中的缓冲区，可以使用任何方法在类成员g上绘制任意的图像，而不用在canvas的repaint事件中处理复杂的绘制过程。</span></li> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">在canvas的repaint方法，将缓冲区图像绘制在屏幕的gc上：</span> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">protected void paint(Graphics g) {<br style="FONT-FAMILY: 宋体"/> g.drawImage(img, 0, 0, Graphics.LEFT | Graphics.TOP);<br style="FONT-FAMILY: 宋体"/> }</span></p> </li> </ol> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">以上就在J2ME中完成了简单的的双缓存的实现。</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><strong style="FONT-FAMILY: 宋体">二、双缓存技术在<a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a>中的实现</strong></span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">在<a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a>中实现双缓冲技术有两种方法，我们先从简单的方法入手：</span></p> <ol style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">第一种方法的实现更贴近于在J2ME中的实现。在此方法中，也得先在内存中建立一个位图缓冲区对象，然后再获取位图对象的设备上下文 dc(Device Context)（类似于J2ME中的Graphics），程序可以在任意的地方对内存缓冲位图的dc绘制图形。在Draw事件（相当于J2ME的 paint事件）内，将缓冲区位图直接绘制在设备的dc上。<br style="FONT-FAMILY: 宋体"/> 首先在头文件中加入如下定义：</span> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">CWsBitmap* iBufBmp;<br style="FONT-FAMILY: 宋体"/> CFbsBitmapDevice* iBufDevice;<br style="FONT-FAMILY: 宋体"/> CBitmapContext* iBufGc;</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">1) iBufBmp为缓冲区位图对象，为CWsBitmap类型。类CWsBitmap继承自类CFbsBitmap，我们在此使用CWsBitmap的原因为因为它比较快，引入SDK中对CWsBitmap类的说明：</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><strong style="FONT-FAMILY: 宋体">This is a bitmap to which the window server already has a handle. Functions<br style="FONT-FAMILY: 宋体"/> which take a window server bitmap are faster than equivalent functions which<br style="FONT-FAMILY: 宋体"/> take a CFbsBitmap.</strong></span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">2) iBufDevice为CFbsBitmapDevice类型的对象，CFbsBitmapDevice的官方解释可以简单的理解为管理文字和位图的图形设备：<br style="FONT-FAMILY: 宋体"/> <strong style="FONT-FAMILY: 宋体">A graphics device to which a bitmap managed by the font and bitmap server can be drawn.</strong></span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">3) iBufGc为CBitmapContext类型的对象，即位图对象的设备上下文dc，获取了iBufGc后，可以使用CBitmapContext中的方法对位图进行绘制。</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">关键部分代码：</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">/**<br style="FONT-FAMILY: 宋体"/> * 初始化双缓冲区<br style="FONT-FAMILY: 宋体"/> */<br style="FONT-FAMILY: 宋体"/> void CTestDoubleBufferAppView::InitDoubleBufferL()<br style="FONT-FAMILY: 宋体"/> {<br style="FONT-FAMILY: 宋体"/> iBufBmp = new(ELeave)CWsBitmap(CEikonEnv::Static()-&gt;WsSession());<br style="FONT-FAMILY: 宋体"/> CleanupStack::PushL(iBufBmp);<br style="FONT-FAMILY: 宋体"/> User::LeaveIfError(iBufBmp-&gt;Create(Rect().Size(), CEikonEnv::Static()-&gt;ScreenDevice()-&gt;DisplayMode()));</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">iBufDevice = CFbsBitmapDevice::NewL(iBufBmp);<br style="FONT-FAMILY: 宋体"/> CleanupStack::PushL(iBufDevice);<br style="FONT-FAMILY: 宋体"/> User::LeaveIfError(iBufDevice-&gt;CreateBitmapContext(iBufGc));</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">CleanupStack::Pop(2); // iDevice, iBufBmp<br style="FONT-FAMILY: 宋体"/> }</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">/**<br style="FONT-FAMILY: 宋体"/> * 测试在缓冲区上绘制<br style="FONT-FAMILY: 宋体"/> */<br style="FONT-FAMILY: 宋体"/> void CTestDoubleBufferAppView::DoTestDraw()<br style="FONT-FAMILY: 宋体"/> {<br style="FONT-FAMILY: 宋体"/> iBufGc-&gt;Clear(Rect());</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">// 在buffer里画方块，而不是在屏幕上<br style="FONT-FAMILY: 宋体"/> for (int i=0; i&lt;100; i+=2)<br style="FONT-FAMILY: 宋体"/> {<br style="FONT-FAMILY: 宋体"/> iBufGc-&gt;DrawRect(TRect(TPoint(i, i), TSize(50, 50)));<br style="FONT-FAMILY: 宋体"/> }</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">}</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">/**<br style="FONT-FAMILY: 宋体"/> * View的重绘事件<br style="FONT-FAMILY: 宋体"/> */<br style="FONT-FAMILY: 宋体"/> void CTestDoubleBufferAppView::Draw(const TRect&amp; /*aRect*/) const<br style="FONT-FAMILY: 宋体"/> {<br style="FONT-FAMILY: 宋体"/> // 以下代码忽略<br style="FONT-FAMILY: 宋体"/> //&nbsp;&nbsp;&nbsp; // Get the standard graphics context<br style="FONT-FAMILY: 宋体"/> //&nbsp;&nbsp;&nbsp; CWindowGc&amp; gc = SystemGc();<br style="FONT-FAMILY: 宋体"/> //<br style="FONT-FAMILY: 宋体"/> //&nbsp;&nbsp;&nbsp; // Gets the control's extent<br style="FONT-FAMILY: 宋体"/> //&nbsp;&nbsp;&nbsp; TRect drawRect(Rect());<br style="FONT-FAMILY: 宋体"/> //<br style="FONT-FAMILY: 宋体"/> //&nbsp;&nbsp;&nbsp; // Clears the screen<br style="FONT-FAMILY: 宋体"/> //&nbsp;&nbsp;&nbsp; gc.Clear(drawRect);</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">SystemGc().BitBlt(TPoint(0, 0), iBufBmp);</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">}</span></p> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" href="http://dev.shufou.com/wp-content/uploads/2008/11/testdoublebuffer.rar">完整代码下载</a></span></p> </li> </ol> <p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><strong style="FONT-FAMILY: 宋体">三、参考文献</strong></span></p> <ol style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" href="http://www.forum.nokia.com/info/sw.nokia.com/id/3e8968b5-3eb8-4dc2-ac9b-248508c249ba/Symbian_OS_Creating_Custom_Controls_v1_0_zh_ch.pdf.html">Symbian OS：创建自定义控件</a></span></li> </ol> <p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">&nbsp;</span></p> <p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">&nbsp;</span></p> <p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">&nbsp;</span></p> <p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">&nbsp;</span></p> <p style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">&nbsp;</span></p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold"><br class="Apple-interchange-newline"/> CTIC.<font style="LINE-HEIGHT: 20px" face="宋体">川科创新</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">&nbsp;</span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold">3G<font style="LINE-HEIGHT: 20px" face="宋体">嵌入式技术教育专家</font><font style="LINE-HEIGHT: 20px" face="Times New Roman">(</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; COLOR: rgb(255,102,0); FONT-SIZE: 12pt; FONT-WEIGHT: bold">学<font style="LINE-HEIGHT: 20px" face="Times New Roman">3G</font><font style="LINE-HEIGHT: 20px" face="宋体">送手机</font></span><span style="LINE-HEIGHT: 20px; FONT-FAMILY: 宋体; FONT-SIZE: 12pt; FONT-WEIGHT: bold">)</span></span></p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/ke/jiuyeban.shtml"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">3G<font style="LINE-HEIGHT: 18px" face="宋体">手机软件工程师</font></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">培训</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 'Times New Roman'; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">班</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">&nbsp;现热招中&nbsp;报名即&nbsp;</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(255,0,0); FONT-SIZE: 10.5pt; FONT-WEIGHT: bold; TEXT-DECORATION: none">送3G<font style="LINE-HEIGHT: 18px" face="宋体">手机&nbsp;</font></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">一部</span></a></span></p> <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; MARGIN: 0pt 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">咨询电话：<font style="LINE-HEIGHT: 18px" face="Times New Roman">400-702-8828&nbsp;&nbsp;</font></span><span style="LINE-HEIGHT: 18px"><a style="LINE-HEIGHT: 18px" href="http://www.ctic.cc/"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); FONT-SIZE: 10.5pt; TEXT-DECORATION: none">www.ctic.cc</span></a></span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">&nbsp;</span></p></div><img src ="http://www.cppblog.com/maolxu/aggbug/110808.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-03-29 11:30 <a href="http://www.cppblog.com/maolxu/archive/2010/03/29/110808.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Symbian编程总结-图形图像篇-直接屏幕访问</title><link>http://www.cppblog.com/maolxu/archive/2010/03/29/110805.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Mon, 29 Mar 2010 03:25:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/03/29/110805.html</guid><description><![CDATA[<div id="PublishedByWebStory-[5]1_1917145A53014755932D94CE62120881_1D19865FE33B4D05807D6C4171E954BD"><p style="FONT-FAMILY: 宋体"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">在<a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a><span class="Apple-converted-space">&nbsp;</span>OS中绘制图形减少闪烁的方法有两种：</span></p> <ol style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px">使用双缓存进行图形的绘制（<span style="FONT-FAMILY: 宋体; TEXT-DECORATION: underline"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" href="http://www.cnblogs.com/felixYeou/archive/2008/11/07/1329317.html"><strong style="FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#1D58D1">点击这里进入相关文章</font></strong></a></span>）</li> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px">使用CDirectScreenAccess类对屏幕进行直接绘制。</li> </ol> <p style="FONT-FAMILY: 宋体">CDirectScreenAccess类在SDK种的解释如下：</p> <p style="FONT-FAMILY: 宋体"><strong style="FONT-FAMILY: 宋体">Direct screen access is a way of drawing to the screen without using the window server. As this avoids client-server communication, it is much faster, and may be useful for games and video. Note that some interaction with the window server is needed in order to prevent the application from drawing over other application's data.</strong></p> <p style="FONT-FAMILY: 宋体">此外，使用CDirectScreenAccess还可以截获系统的通知消息（如菜单弹出、电话拨入、信息收到等）的对话框弹出事件，从而避免不必要的刷新工作。</p> <p style="FONT-FAMILY: 宋体"><strong style="FONT-FAMILY: 宋体">一、CDirectScreenAccess的简单使用</strong></p> <p style="FONT-FAMILY: 宋体">CDirectScreenAccess使用起来非常简单，下面的几格步骤将介绍CDirectScreenAccess的使用方法：</p> <ol style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px"> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px">在Carbide C++中使用向导生成GUI应用程序</li> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px">在View类中创建成员变量CDirectScreenAccess* iDSA;</li> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px">在View类中创建私有方法void DrawGraphics();代码如下：<br style="FONT-FAMILY: 宋体"/> <br style="FONT-FAMILY: 宋体"/> void CTestDirectDrawAppView::DrawGraphics()<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; {<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; CFbsBitGc* gc = iDSA-&gt;Gc(); <p style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp; TRgb colorRed= AKN_LAF_COLOR(35);<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; gc-&gt;SetPenColor(colorRed);<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; gc-&gt;DrawRect(TRect(0, 0, 100, 100));</p> <p style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp; iDSA-&gt;ScreenDevice()-&gt;Update();<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; }</p> </li> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px">在View类的ConstructL方法里加入以下代码：<br style="FONT-FAMILY: 宋体"/> <br style="FONT-FAMILY: 宋体"/> CEikonEnv* env = CEikonEnv::Static();<br style="FONT-FAMILY: 宋体"/> iDSA = CDirectScreenAccess::NewL(env-&gt;WsSession(), *(env-&gt;ScreenDevice()), this-&gt;Window(), *this); <p style="FONT-FAMILY: 宋体">iDSA-&gt;StartL();<br style="FONT-FAMILY: 宋体"/> DrawGraphics();</p> </li> <li style="PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px">在View类中创建以下两个私有方法：<br style="FONT-FAMILY: 宋体"/> <br style="FONT-FAMILY: 宋体"/> void Restart(RDirectScreenAccess::TTerminationReasons aReason);<br style="FONT-FAMILY: 宋体"/> void AbortNow(RDirectScreenAccess::TTerminationReasons aReason);<span class="Apple-converted-space">&nbsp;</span><br style="FONT-FAMILY: 宋体"/> <br style="FONT-FAMILY: 宋体"/> 实现如下：<br style="FONT-FAMILY: 宋体"/> <p style="FONT-FAMILY: 宋体">void CTestDirectDrawAppView::Restart(RDirectScreenAccess::TTerminationReasons aReason)<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; {<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; iDSA-&gt;StartL();<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; DrawGraphics();<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; }</p> <p style="FONT-FAMILY: 宋体">void CTestDirectDrawAppView::AbortNow(RDirectScreenAccess::TTerminationReasons aReason)<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; {<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; iDSA-&gt;Cancel();<br style="FONT-FAMILY: 宋体"/> &nbsp;&nbsp;&nbsp; }</p> <p style="FONT-FAMILY: 宋体"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" href="http://dev.shufou.com/wp-content/uploads/2008/11/testdirectdraw.rar"><strong style="FONT-FAMILY: 宋体"><font style="FONT-FAMILY: 宋体" color="#1D58D1">点击此处下载源代码</font></strong></a></p> </li> </ol> <p style="FONT-FAMILY: 宋体"></p> <p style="FONT-FAMILY: 宋体"><strong style="FONT-FAMILY: 宋体">二、分析实现过程</strong></p> <p style="FONT-FAMILY: 宋体">1、普通的绘制过程</p> <p style="FONT-FAMILY: 宋体"><img alt="image" src="http://www.chinaeda.cn/upload/2010_01/100101001411061.png"/></p> <p style="FONT-FAMILY: 宋体">&nbsp;</p> <p style="FONT-FAMILY: 宋体">2、当有系统对话框通知时的绘制过程</p> <p style="FONT-FAMILY: 宋体">&nbsp;</p> <p><img src="http://www.chinaeda.cn/upload/2010_01/100101001411064.png"/><br class="Apple-interchange-newline"/></p></div><img src ="http://www.cppblog.com/maolxu/aggbug/110805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-03-29 11:25 <a href="http://www.cppblog.com/maolxu/archive/2010/03/29/110805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>symbian与uiq开发教程</title><link>http://www.cppblog.com/maolxu/archive/2010/03/26/110587.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Fri, 26 Mar 2010 05:57:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/03/26/110587.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Symbian是智能手机中的操作系统&nbsp;　　在目前手机操作系统的争夺中，Symbian市场占有率达到了70％，是当之无愧的老大，而微软的&nbsp;　　Windowsmobile和其他操作系统一共只有30％的份额。&nbsp;　　&nbsp;　　而当前&nbsp;最有潜力的市场就是智能手机市场&nbsp;无论是开发还是其它方面&nbsp;　　&nbsp;　　所以&nbsp;与其学会vc&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/maolxu/archive/2010/03/26/110587.html'>阅读全文</a><img src ="http://www.cppblog.com/maolxu/aggbug/110587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-03-26 13:57 <a href="http://www.cppblog.com/maolxu/archive/2010/03/26/110587.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Symbian游戏编程入门 （三）</title><link>http://www.cppblog.com/maolxu/archive/2010/03/19/110120.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Fri, 19 Mar 2010 10:01:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/03/19/110120.html</guid><description><![CDATA[<div id="PublishedByWebStory-[5]1_9C190869329D4489B1046E5EC615B332_84C498615D8D487397F8EE160F7C1CAA"><h2 style="PADDING-BOTTOM: 0px; MARGIN: 13pt 0cm; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; FONT-SIZE: 13px; FONT-WEIGHT: normal; PADDING-TOP: 0px"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US"><font style="FONT-FAMILY: 宋体" face="Arial">3.1<span class="Apple-converted-space">&nbsp;</span><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a></font></span><span style="FONT-FAMILY: 黑体">应用程序类型介绍</span></span></h2> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US"><a style="FONT-FAMILY: 宋体; COLOR: rgb(31,58,135); TEXT-DECORATION: none" title="Symbian手机应用开发工程师培训班" href="http://www.chinaeda.com/ke/mob.shtml">Symbian</a><span class="Apple-converted-space">&nbsp;</span>OS<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">中编译的二进制代码由三种目标类型，</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">EXE</span><span style="FONT-FAMILY: 宋体">、</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">APP</span><span style="FONT-FAMILY: 宋体">和</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">。</span></p> <h2 style="PADDING-BOTTOM: 0px; MARGIN: 13pt 0cm; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; FONT-SIZE: 13px; FONT-WEIGHT: normal; PADDING-TOP: 0px"><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US"><font style="FONT-FAMILY: 宋体" face="Arial">3.2 EXE</font></span><span style="FONT-FAMILY: 黑体">程序的开发</span></h2> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">当我们的应用程序并不需要用户界面，只需要使用一个单独进程的时候，我们可以创建</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">.EXE<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">程序。</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">.EXE</span><span style="FONT-FAMILY: 宋体">程序包含一个主入口</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">E32main()</span><span style="FONT-FAMILY: 宋体">，当系统通过</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">E32main()</span><span style="FONT-FAMILY: 宋体">启动的时候，系统会创建新的进程，并在此进程中创建新的线程。在创建</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">EXE<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">程序时，我们需要在</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">.mmp</span><span style="FONT-FAMILY: 宋体">文件中将程序的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">TARGET</span><span style="FONT-FAMILY: 宋体">指定为</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US"><span class="Apple-converted-space">&nbsp;</span>EXE</span><span style="FONT-FAMILY: 宋体">。</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">EXE</span><span style="FONT-FAMILY: 宋体">通常是服务端或命令行程序，通常隐蔽的运行，他没有</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">GUI</span><span style="FONT-FAMILY: 宋体">，不能直接从主菜单运行。</span></p> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">下面是一个最基本的控制台应用程序的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">MMP</span><span style="FONT-FAMILY: 宋体">文件：</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">target<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>Console.exe</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">targettype<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>EXE</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">UID<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>0x100039CE 0x10005B91</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">TARGETPATH<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>\system\apps\Console</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">sourcepath<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>..\src</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">userinclude<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>..\in</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">systeminclude<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>\EPOC32\INCLUDE</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">systeminclude<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>\EPOC32\INCLUDE\LIBC</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">source<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>e32main.cpp Console.cpp</span></p> <p style="TEXT-ALIGN: left; TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt 0.05pt; FONT-FAMILY: 宋体" class="MsoNormal" align="left"><span style="FONT-FAMILY: 新宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">library<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>euser.lib</span></p> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">我们编译程序后，会生成</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 新宋体" lang="EN-US" xml:lang="EN-US">Console.exe</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 新宋体">。将程序打包安装后，我们无法直接运行此程序。运行此程序可以有两种方法，第一是通过其他程序的调用来运行，第二是使用<span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">SeleQ<span class="Apple-converted-space">&nbsp;</span></span>一类的文件浏览器选择此程序然后运行。</span></p> <p style="TEXT-ALIGN: center; LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal" align="center">&nbsp;</p> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体">在这里我们实现了一个</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">console</span><span style="LINE-HEIGHT: 18px; FONT-FAMILY: 宋体">类用来显示上边的文字。我们在设计一个后台程序时候也可以不实现</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">console</span><span style="FONT-FAMILY: 宋体">类，这样程序运行时候在屏幕上将不会有任何显示。</span></p> <h2 style="PADDING-BOTTOM: 0px; MARGIN: 13pt 0cm; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 宋体; FONT-SIZE: 13px; FONT-WEIGHT: normal; PADDING-TOP: 0px"><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US"><font style="FONT-FAMILY: 宋体" face="Arial">3.3 APP</font></span><span style="FONT-FAMILY: 黑体">程序的开发</span></h2> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">当我们创建的应用程序需要使用用户界面的时候，我们需要创建</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">APP</span><span style="FONT-FAMILY: 宋体">程序。一个</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">APP</span><span style="FONT-FAMILY: 宋体">程序可能包括自定义的字符串、菜单项、对话框等。如果我们要创建一个</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">APP</span><span style="FONT-FAMILY: 宋体">程序，我们需要在</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">.mmp</span><span style="FONT-FAMILY: 宋体">文件中将程序的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">TARGET</span><span style="FONT-FAMILY: 宋体">指定为</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US"><span class="Apple-converted-space">&nbsp;</span>APP<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">。</span></p> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">我们最熟悉的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">Helloworld<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">就是一个简单的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">APP<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">程序，下面是它的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">mmp<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">文件：</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">TARGET<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>HelloWorldBasic.app</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">TARGETTYPE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>app</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">UID<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>0x100039CE 0x10005B91</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">TARGETPATH<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>\system\apps\helloworldbasic</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCEPATH<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>..\src</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>HelloWorldBasic.cpp</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>HelloWorldBasicApplication.cpp</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>HelloWorldBasicAppView.cpp</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>HelloWorldBasicAppUi.cpp</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;</span>HelloWorldBasicDocument.cpp</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCEPATH<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>..\group</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">RESOURCE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>HelloWorldBasic.rss</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">USERINCLUDE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>..\inc</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SYSTEMINCLUDE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>\epoc32\include</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">LIBRARY<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>euser.lib</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">LIBRARY<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>apparc.lib</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">LIBRARY<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>cone.lib</span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">LIBRARY<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>eikcore.lib<span style="FONT-FAMILY: 宋体">&nbsp;</span></span></p> <p style="TEXT-INDENT: 72pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">LIBRARY<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>avkon.lib<span style="FONT-FAMILY: 宋体">&nbsp;<span class="Apple-converted-space">&nbsp;</span><br style="FONT-FAMILY: 宋体"/></span></span><strong style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US"><font style="FONT-FAMILY: 宋体" face="Arial">3.4 DLL</font></span><span style="FONT-FAMILY: 黑体">程序的开发</span></strong></p> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">提供多个入口，由系统或是已存在的线程</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">进程</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">调用。</span></p> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">有两种类型的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL,<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">静态</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">和多态</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">。</span></p> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">静态</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">为其他程序提供方法列表以供调用。当程序启动的链接阶段静态</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">就被读到内存中。</span></p> <p style="LINE-HEIGHT: 18px; TEXT-INDENT: 21pt; MARGIN: 7.8pt 0cm; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">多态</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">为其他程序提供某个固定的方法调用。例如某个</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">GUI</span><span style="FONT-FAMILY: 宋体">应用提供了</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">NewApplication()</span><span style="FONT-FAMILY: 宋体">方法调用以启动应用程序。这些</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">实现抽象的方法</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">,</span><span style="FONT-FAMILY: 宋体">如一个打印机驱动，</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">socket</span><span style="FONT-FAMILY: 宋体">协议或是一个应用程序。它们的扩展名多不是</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">.DLL,</span><span style="FONT-FAMILY: 宋体">而是</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">PRN</span><span style="FONT-FAMILY: 宋体">、</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">PRT<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">或</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">APP</span><span style="FONT-FAMILY: 宋体">等。它们从与</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">相关的类继承，并通常只有在程序需要它们时才读入。前面的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">APP</span><span style="FONT-FAMILY: 宋体">程序也算作一个多态</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">。</span></p> <p style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体">如果我们要创建的是</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">DLL</span><span style="FONT-FAMILY: 宋体">程序，我们需要在</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">.mmp</span><span style="FONT-FAMILY: 宋体">文件中将程序的</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US">TARGET</span><span style="FONT-FAMILY: 宋体">指定为</span><span style="FONT-FAMILY: 宋体" lang="EN-US" xml:lang="EN-US"><span class="Apple-converted-space">&nbsp;</span>DLL</span><span style="FONT-FAMILY: 宋体">。如下所示：</span></p> <p style="TEXT-INDENT: 108pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">TARGET<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>test.dll</span></p> <p style="TEXT-INDENT: 108pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">TARGETTYPE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>dll</span></p> <p style="TEXT-INDENT: 108pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">UID<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">&nbsp;</span><span style="FONT-FAMILY: 宋体">&nbsp;</span>0x1000008D 0x0CD52435</span></p> <p style="TEXT-INDENT: 108pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCEPATH<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>..\src</span></p> <p style="TEXT-INDENT: 108pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SOURCE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>test.cpp</span></p> <p style="TEXT-INDENT: 108pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">USERINCLUDE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>..\inc</span></p> <p style="TEXT-INDENT: 108pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">SYSTEMINCLUDE<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span>\epoc32\include</span></p> <p style="TEXT-INDENT: 108pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: 宋体" class="MsoNormal"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" lang="EN-US" xml:lang="EN-US">LIBRARY<span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span></span><span style="FONT-FAMILY: 宋体">&nbsp;</span><span style="FONT-FAMILY: 宋体">&nbsp;</span>euser.lib</span></p> <p>&nbsp;</p></div><img src ="http://www.cppblog.com/maolxu/aggbug/110120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-03-19 18:01 <a href="http://www.cppblog.com/maolxu/archive/2010/03/19/110120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Symbian游戏编程入门 (二)</title><link>http://www.cppblog.com/maolxu/archive/2010/03/19/110119.html</link><dc:creator>Learn</dc:creator><author>Learn</author><pubDate>Fri, 19 Mar 2010 09:54:00 GMT</pubDate><guid>http://www.cppblog.com/maolxu/archive/2010/03/19/110119.html</guid><description><![CDATA[<span  style="font-family: 宋体; font-size: 12px; "><h1 align="center" style="font-family: 宋体; margin-top: 17pt; margin-right: 0cm; margin-bottom: 16.5pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: center; "><span style="font-family: 宋体; ">二</span><span lang="EN-US" style="font-family: 宋体; ">.</span><span style="font-family: 宋体; ">开发环境入门</span></h1><h2 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; "><span lang="EN-US" style="font-family: 宋体; "><font face="Arial" style="font-family: 宋体; ">2.1&nbsp;</font></span><span style="font-family: 黑体; ">安装</span><span lang="EN-US" style="font-family: 宋体; "><font face="Arial" style="font-family: 宋体; ">SDK</font></span><span style="font-family: 黑体; ">及</span><span lang="EN-US" style="font-family: 宋体; "><font face="Arial" style="font-family: 宋体; ">VC<o:p style="font-family: 宋体; "></o:p></font></span></h2><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span lang="EN-US" style="font-family: 宋体; ">Nokia</span><span style="font-family: 宋体; ">根据手机的屏幕大小和价格高低把手机分成了多个系列，现在使用的系列有：</span><span lang="EN-US" style="font-family: 宋体; ">Series 40</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Series 60</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Series 80&nbsp;</span><span style="font-family: 宋体; ">和</span><span lang="EN-US" style="font-family: 宋体; ">Series 90</span><span style="font-family: 宋体; ">。</span><span lang="EN-US" style="font-family: 宋体; color: rgb(51, 51, 51); ">60</span><span style="font-family: 宋体; color: rgb(51, 51, 51); ">系列采用</span><span lang="EN-US" style="font-family: 宋体; color: rgb(51, 51, 51); "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;os 6.1</span><span style="font-family: 宋体; color: rgb(51, 51, 51); ">，然后又根据手机屏幕的特点对</span><span lang="EN-US" style="font-family: 宋体; color: rgb(51, 51, 51); ">UI</span><span style="font-family: 宋体; color: rgb(51, 51, 51); ">做了一些修改，这个被修改了的</span><span lang="EN-US" style="font-family: 宋体; color: rgb(51, 51, 51); "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a></span><span style="font-family: 宋体; color: rgb(51, 51, 51); ">就被称为</span><span lang="EN-US" style="font-family: 宋体; color: rgb(51, 51, 51); ">Nokia</span><span style="font-family: 宋体; color: rgb(51, 51, 51); ">的</span><span lang="EN-US" style="font-family: 宋体; color: rgb(51, 51, 51); ">60</span><span style="font-family: 宋体; color: rgb(51, 51, 51); ">系列平台</span><span style="font-family: 宋体; ">。使用</span><span lang="EN-US" style="font-family: 宋体; ">60</span><span style="font-family: 宋体; ">系列的手机型号包括：</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 6670</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">&nbsp;Nokia 6630</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">&nbsp;Nokia 6260&nbsp;</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia N-Gage QD&#8482;&nbsp;</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 7610&nbsp;</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 6620</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 3620&nbsp;</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 3660&nbsp;</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 6600&nbsp;</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 3600</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 3650</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia 7650</span><span style="font-family: 宋体; ">、</span><span lang="EN-US" style="font-family: 宋体; ">Nokia N-Gage&#8482;</span><span style="font-family: 宋体; ">等。</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">下面我们就以</span><span lang="EN-US" style="font-family: 宋体; ">60</span><span style="font-family: 宋体; ">系列为例，介绍</span><span lang="EN-US" style="font-family: 宋体; ">SDK</span><span style="font-family: 宋体; ">的安装过程。</span></p><h3 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: left; "><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">2.1.1&nbsp;</span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">安装</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">SDK<o:p style="font-family: 宋体; "></o:p></span></h3><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21.85pt; "><span style="font-family: 宋体; ">第一步，到</span><span lang="EN-US" style="font-family: 宋体; ">Nokia</span><span style="font-family: 宋体; ">论坛注册，下载最新的</span><span lang="EN-US" style="font-family: 宋体; ">SDK</span><span style="font-family: 宋体; ">。</span><span lang="EN-US" style="font-family: 宋体; ">Nokia&nbsp;</span><span style="font-family: 宋体; ">网站提供的</span><span lang="EN-US" style="font-family: 宋体; ">Series 60 SDK for&nbsp;<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;OS Nokia Edition SDK</span><span style="font-family: 宋体; ">最新版本是</span><span lang="EN-US" style="font-family: 宋体; ">v1.2</span><span style="font-family: 宋体; ">，</span><span lang="EN-US" style="font-family: 宋体; ">Series 60 SDK for&nbsp;<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;OS</span><span style="font-family: 宋体; ">的最新版本是</span><span lang="EN-US" style="font-family: 宋体; ">v2.1</span><span style="font-family: 宋体; ">。下载网址：</span><span lang="EN-US" style="font-family: 宋体; "><a href="http://www.forum.nokia.com/main/0,6566,034-4,00.html" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; "><font color="#006699" style="font-family: 宋体; ">http://www.forum.nokia.com/main/0,6566,034-4,00.html</font></a></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21.85pt; "><span style="font-family: 宋体; ">第二步，到</span><span lang="EN-US" style="font-family: 宋体; "><a href="http://www.activestate.com/" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; "><font color="#006699" style="font-family: 宋体; ">http://www.activestate.com</font></a>&nbsp;</span><span style="font-family: 宋体; ">网站下载最新的</span><span lang="EN-US" style="font-family: 宋体; ">Active Perl Script&nbsp;</span><span style="font-family: 宋体; ">安装程序。到</span><span lang="EN-US" style="font-family: 宋体; "><a href="http://www.java.com/en/download/manual.jsp" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; "><font color="#006699" style="font-family: 宋体; ">http://www.java.com/en/download/manual.jsp</font></a>&nbsp;</span><span style="font-family: 宋体; ">下载最新的</span><span lang="EN-US" style="font-family: 宋体; ">J2RE</span><span style="font-family: 宋体; ">。</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21.85pt; "><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">第三步：安装</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">SDK</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">，推荐为</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a></span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">开发单独建一个目录，例如</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">d</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">：</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a></span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">而不是使用</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">C:\program files</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">等这样的目录。</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; "><o:p style="font-family: 宋体; "></o:p></span></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21.85pt; "><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">第四步：安装</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">Active Perl</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">和</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">J2RE</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">，安装到默认目录即可。</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; "><o:p style="font-family: 宋体; "></o:p></span></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21.85pt; "><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">第五步：检查环境变量设定。打开系统环境变量</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">tab</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">，然后看看有没有</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">EPOCROOT</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">，如果有的话，把它手动改成&#8220;</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">\</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">&#8221;</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: Verdana; font-size: 9pt; ">&nbsp;</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">。改完之后应该是这个样子的：</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; "><o:p style="font-family: 宋体; "></o:p></span></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21.85pt; "><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">EPOCROOT = \<o:p style="font-family: 宋体; "></o:p></span></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21.85pt; "><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">然后，在系统</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">PATH</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">中加入</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">&nbsp;\epoc32\tools</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">目录以及</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">\epoc32\gcc\bin</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">目录就可以了。</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; "><o:p style="font-family: 宋体; "></o:p></span></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21.85pt; "><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">实际上，</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;SDK</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">根本不用安装，直接把</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; ">epoc32</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">目录拷贝到一个机器上，然后照上述方法设定目录和环境变量就可以了。</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 9pt; "><o:p style="font-family: 宋体; "></o:p></span></span></p><h3 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: left; "><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 10.5pt; line-height: 24px; ">2.1.2&nbsp;</span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">配置</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: Verdana; font-size: 10.5pt; line-height: 24px; ">VC<o:p style="font-family: 宋体; "></o:p></span></span></h3><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">如果我们使用的是</span><span lang="EN-US" style="font-family: 宋体; ">VC 6.0</span><span style="font-family: 宋体; ">，我们要保证系统至少打了</span><span lang="EN-US" style="font-family: 宋体; ">SP3</span><span style="font-family: 宋体; ">补丁，否则系统会有警告提示。如果我们使用的是</span><span lang="EN-US" style="font-family: 宋体; ">VS.NET2003,&nbsp;</span><span style="font-family: 宋体; ">我们就只能安装</span><span lang="EN-US" style="font-family: 宋体; ">Series 60 SDK for&nbsp;<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;OS v2.1</span><span style="font-family: 宋体; ">，因为</span><span lang="EN-US" style="font-family: 宋体; ">Series 60 SDK for&nbsp;<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;OS Nokia Edition SDK v1.2</span><span style="font-family: 宋体; ">在</span><span lang="EN-US" style="font-family: 宋体; ">VS.NET2003</span><span style="font-family: 宋体; ">无法正确建立工程。</span></p><span style="font-family: 宋体; font-size: 10.5pt; ">如果要直接在</span><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; ">vc6</span><span style="font-family: 宋体; font-size: 10.5pt; ">里创建新项目，要把</span><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Series60Tools\ Application Wizard</span><span style="font-family: 宋体; font-size: 10.5pt; ">目录下的</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; ">&nbsp;<span lang="EN-US" style="font-family: 宋体; ">AvkonAppWiz.awx</span></span><span style="font-family: 宋体; font-size: 10.5pt; ">和</span><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; ">AVKONAPPWIZ.HLP</span><span style="font-family: 宋体; font-size: 10.5pt; ">文件拷贝到</span><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; ">vc6</span><span style="font-family: 宋体; font-size: 10.5pt; ">的模板目录</span><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; ">C:\Program Files\ Microsoft Visual Studio\ Common\ MSDev98\ Template</span><span style="font-family: 宋体; font-size: 10.5pt; ">下。这样我们就可以在</span><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; ">VC</span><span style="font-family: 宋体; font-size: 10.5pt; ">的新建工程中看到</span><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; ">Series 60 AppWizard v 1.9</span><span style="font-family: 宋体; font-size: 10.5pt; ">这个选项.<br style="font-family: 宋体; "><br style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 10.5pt; ">&nbsp;&nbsp;&nbsp; 填入</span><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; ">Project Name&nbsp;</span><span style="font-family: 宋体; font-size: 10.5pt; ">以后，确认。<br style="font-family: 宋体; ">&nbsp;&nbsp;&nbsp;<p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">一路&#8220;</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">Next</font></span><span style="font-family: 宋体; ">&#8221;，一个最简单的</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a></font></span><span style="font-family: 宋体; ">应用程序就建立好了。<br style="font-family: 宋体; "></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">如果要将已经建立好的工程导入到</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">VC6.0</font></span><span style="font-family: 宋体; ">中，比如我们将</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">SDK</font></span><span style="font-family: 宋体; ">中的例子</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">HelloWorld</font></span><span style="font-family: 宋体; ">转换成一个</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">VC6</font></span><span style="font-family: 宋体; ">的项目，我们首先进入</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Series60Ex\HelloWorld</font></span><span style="font-family: 宋体; ">目录。在这里我们可以看到，在</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a></font></span><span style="font-family: 宋体; ">中，一个</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">Project</font></span><span style="font-family: 宋体; ">通常是按</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">inc, src, group</font></span><span style="font-family: 宋体; ">等目录组织，</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">group</font></span><span style="font-family: 宋体; ">目录里通常放的是项目文件，所以编译时要先到这里。用命令提示符模式进入刚才说的那个目录下，然后执行：</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">bldmake bldfiles</font></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">这个命令会在</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">group</font></span><span style="font-family: 宋体; ">目录下生成一个</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">abld.bat</font></span><span style="font-family: 宋体; ">的批处理文件，并且会在</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Epoc32\BUILD</font></span><span style="font-family: 宋体; ">下生成</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Epoc32\BUILD\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\ SERIES60\SERIES60EX\HELLOWORLD\GROUP</font></span><span style="font-family: 宋体; ">这个目录，并在最底层目录下生成一堆</span><font face="Times New Roman" style="font-family: 宋体; "><span lang="EN-US" style="font-family: 宋体; ">.make</span></font><span style="font-family: 宋体; ">文件。</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 18pt; "><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">然后，我们在同一个目录运行刚才生成的</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: 宋体; font-size: 9pt; "><font face="Times New Roman" style="font-family: 宋体; ">abld.bat</font></span></span><span class="postbody1" style="font-family: 宋体; "><span style="font-family: 宋体; font-size: 9pt; ">：</span></span><span class="postbody1" style="font-family: 宋体; "><span lang="EN-US" style="font-family: 宋体; font-size: 9pt; "><o:p style="font-family: 宋体; "></o:p></span></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">abld makefile vc6</font></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">这样就会自动生成</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">vc6</font></span><span style="font-family: 宋体; ">的</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">dsw</font></span><span style="font-family: 宋体; ">文件，位置在</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Epoc32\BUILD\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\ SERIES60\SERIES60EX\HELLOWORLD\GROUP\HELLOWORLD\WINS</font></span><span style="font-family: 宋体; ">。然后我们就可以在</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">VC6</font></span><span style="font-family: 宋体; ">种打开这个</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a></font></span><span style="font-family: 宋体; ">工程了。</span></p><h2 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; "><span lang="EN-US" style="font-family: 宋体; "><font face="Arial" style="font-family: 宋体; ">2.2&nbsp;</font></span><span style="font-family: 黑体; ">编译</span><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; "></o:p></span></h2><p class="MsoNormal" style="font-family: 宋体; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">我们可以直接使用</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">SDK</font></span><span style="font-family: 宋体; ">提供的工具编译</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;</font></span><span style="font-family: 宋体; ">工程，也可以使用</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">VC6</font></span><span style="font-family: 宋体; ">提供的集成环境来编译转化过的</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;</font></span><span style="font-family: 宋体; ">工程。编译的结果存放在</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Epoc32\ Release\wins\UDEB\Z\SYSTEM\apps</font></span><span style="font-family: 宋体; ">目录中。</span></p><h3 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: left; "><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><font face="Times New Roman" style="font-family: 宋体; ">2.2.1</font></span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">使用</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><font face="Times New Roman" style="font-family: 宋体; ">SDK</font></span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">提供的工具编译</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><font face="Times New Roman" style="font-family: 宋体; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;</font></span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">工程</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><o:p style="font-family: 宋体; "></o:p></span></h3><p style="font-family: 宋体; text-indent: 21pt; "><span style="font-family: 宋体; font-size: 10.5pt; ">我们在上一节的那个位置继续输入：<span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; "></o:p></span></span></p><p style="font-family: 宋体; text-indent: 21pt; "><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; ">abld build wins udeb<o:p style="font-family: 宋体; "></o:p></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">这个命令会编译我们的程序，最后在</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Epoc32\Release\wins\UDEB</font></span><span style="font-family: 宋体; ">目录下生成我们的</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">helloworld</font></span><span style="font-family: 宋体; ">，然后我们可以从开始菜单里运行模拟器的</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">debug</font></span><span style="font-family: 宋体; ">版，在模拟其中就可以运行</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">helloworld</font></span><span style="font-family: 宋体; ">了。</span></p><h3 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: left; "><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><font face="Times New Roman" style="font-family: 宋体; ">2.2.2&nbsp;</font></span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">使用</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><font face="Times New Roman" style="font-family: 宋体; ">VC6</font></span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">编译</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><font face="Times New Roman" style="font-family: 宋体; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;</font></span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">工程</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><o:p style="font-family: 宋体; "></o:p></span></h3><p class="MsoNormal" style="font-family: 宋体; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">我们直接打开运行</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">abld makefile vc6</font></span><span style="font-family: 宋体; ">后生成的</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">dsw</font></span><span style="font-family: 宋体; ">文件，</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">VC</font></span><span style="font-family: 宋体; ">自动装载转化过的工程。按</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">F7</font></span><span style="font-family: 宋体; ">便可以直接编译工程，编译结果同样放在</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Epoc32\Release\ wins\UDEB</font></span><span style="font-family: 宋体; ">目录中。然后我们打开模拟器</span><span lang="EN-US" style="font-family: 宋体; "><font face="Times New Roman" style="font-family: 宋体; ">debug&nbsp;</font></span><span style="font-family: 宋体; ">版，就可以看到我们编译好的工程了。</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; "><br clear="all" style="font-family: 宋体; page-break-before: always; "><span lang="EN-US" style="font-family: 'Times New Roman'; font-size: 10.5pt; "><br clear="all" style="font-family: 宋体; page-break-before: always; "></span></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; ">&nbsp;</o:p></span></p><h2 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; "><span lang="EN-US" style="font-family: 宋体; "><font face="Arial" style="font-family: 宋体; ">2.3&nbsp;</font></span><span style="font-family: 黑体; ">打包</span><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; "></o:p></span></h2><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">我们以</span><span lang="EN-US" style="font-family: 宋体; ">SDK 1.2</span><span style="font-family: 宋体; ">提供的</span><span lang="EN-US" style="font-family: 宋体; ">HelloWorld</span><span style="font-family: 宋体; ">为例，制作可以在手机中安装的</span><span lang="EN-US" style="font-family: 宋体; ">.SIS</span><span style="font-family: 宋体; ">文件：</span><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; "></o:p></span></p><h3 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: left; "><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">2.3.1</span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">．检查程序</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><o:p style="font-family: 宋体; "></o:p></span></h3><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">首先，在命令行格式下，进入</span><span lang="EN-US" style="font-family: 宋体; ">HelloWorld</span><span style="font-family: 宋体; ">工程</span><span lang="EN-US" style="font-family: 宋体; ">mmp</span><span style="font-family: 宋体; ">文件所在目录，输入</span><span lang="EN-US" style="font-family: 宋体; ">bldmake bldfiles</span><span style="font-family: 宋体; ">和</span><span lang="EN-US" style="font-family: 宋体; ">abld build wins udeb</span><span style="font-family: 宋体; ">，然后打开模拟器，检测程序有无错误。</span><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; "></o:p></span></p><h3 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: left; "><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">2.3.2</span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">．编译工程</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><o:p style="font-family: 宋体; "></o:p></span></h3><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">在程序无错误后，在命令行输入</span><span lang="EN-US" style="font-family: 宋体; ">abld build&nbsp;<a href="http://www.chinaeda.com/ke/gaoji.shtml" title="ARM-Linux软件工程师—高级培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">ARM</a>i urel&nbsp;</span><span style="font-family: 宋体; ">。</span><span style="font-family: 宋体; ">执行这个命令之后会在目录</span><span lang="EN-US" style="font-family: 宋体; ">d:\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\series60\epoc32\release\<a href="http://www.chinaeda.com/ke/gaoji.shtml" title="ARM-Linux软件工程师—高级培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">ARM</a>i\urel</span><span style="font-family: 宋体; ">生成</span><span lang="EN-US" style="font-family: 宋体; ">HELLOWORLD.APP</span><span style="font-family: 宋体; ">和</span><span lang="EN-US" style="font-family: 宋体; ">HELLOWORLD.RSC</span><span style="font-family: 宋体; ">两个文件。</span></p><h3 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: left; "><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">2.3.3</span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">．建立</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">.pkg</span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">文件</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><o:p style="font-family: 宋体; "></o:p></span></h3><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">在</span><span lang="EN-US" style="font-family: 宋体; ">d:\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\Series60\Series60Ex\helloworld\sis<span style="font-family: 宋体; ">&nbsp;&nbsp;</span></span><span style="font-family: 宋体; ">用记事本建立或者修改工程的</span><span lang="EN-US" style="font-family: 宋体; ">pkg</span><span style="font-family: 宋体; ">文件，内容如下：</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">; HelloWorld.pkg</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">;</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">;Language - standard language definitions</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">&amp;EN</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; ">&nbsp;</o:p></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">; standard SIS file header</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">#{"HelloWorld"},(0x10005B91),1,0,0</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; ">&nbsp;</o:p></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">;Supports Series 60 v 1.2</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">(0x101F8202), 0, 0, 0, {"Series60ProductID"}</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">;</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">"d:\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\series60\epoc32\release\<a href="http://www.chinaeda.com/ke/gaoji.shtml" title="ARM-Linux软件工程师—高级培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">ARM</a>i\urel\HelloWorld.APP"-"!:\system\apps\HelloWorld\HelloWorld.app"</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; "><span lang="EN-US" style="font-family: 宋体; ">"d:\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\series60\epoc32\release\<a href="http://www.chinaeda.com/ke/gaoji.shtml" title="ARM-Linux软件工程师—高级培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">ARM</a>i\urel\HELLOWORLD.rSC"-"!:\system\apps\HelloWorld\HELLOWORLD.rSC"</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">其中，前面</span><span lang="EN-US" style="font-family: 宋体; ">"d:\<a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>\6.1\series60\epoc32\release\<a href="http://www.chinaeda.com/ke/gaoji.shtml" title="ARM-Linux软件工程师—高级培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">ARM</a>i\urel\HELLOWORLD.rSC"</span><span style="font-family: 宋体; ">是要打包安装的文件，</span><span lang="EN-US" style="font-family: 宋体; ">"!:\system\apps\HelloWorld\HELLOWORLD.rSC"</span><span style="font-family: 宋体; ">是安装的目标位置。在其中要注意的是，我们在目标位置中用&#8220;！&#8221;代替了实际的盘符。这样做得好处是在用户安装的时候，手机系统会提示用户选择要安装的位置，这就给了用户更大的灵活度。另外，在</span><span lang="EN-US" style="font-family: 宋体; "><a href="http://www.chinaeda.com/ke/mob.shtml" title="Symbian手机应用开发工程师培训班" style="font-family: 宋体; color: rgb(31, 58, 135); text-decoration: none; ">Symbian</a>&nbsp;</span><span style="font-family: 宋体; ">系统中，安装的应用程序默认位置是&#8220;</span><span lang="EN-US" style="font-family: 宋体; ">!:\system\apps</span><span lang="EN-US" style="font-family: 宋体; ">&nbsp;</span><span style="font-family: 宋体; ">&#8221;。</span><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; "></o:p></span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">编辑好</span><span lang="EN-US" style="font-family: 宋体; ">pkg</span><span style="font-family: 宋体; ">文件后，保存至相应目录。</span><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; "></o:p></span></p><h3 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; text-align: left; "><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">2.3.4</span><span style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; ">．打包程序</span><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt; line-height: 24px; "><o:p style="font-family: 宋体; "></o:p></span></h3><p class="MsoNormal" style="font-family: 宋体; margin-top: 6pt; margin-right: 0cm; margin-bottom: 6pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">在命令行中，转至</span><span lang="EN-US" style="font-family: 宋体; ">pkg</span><span style="font-family: 宋体; ">文件所在目录，运行命令</span><span lang="EN-US" style="font-family: 宋体; ">makesis HelloWorld.pkg</span><span style="font-family: 宋体; ">。之后我们就在同一目录下得到了打包好的</span><span lang="EN-US" style="font-family: 宋体; ">.sis</span><span style="font-family: 宋体; ">文件。</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; text-indent: 21pt; "><span lang="EN-US" style="font-family: 宋体; "><span style="font-family: 宋体; "></span><br clear="all" style="font-family: 宋体; page-break-before: always; "></span>&nbsp;</p><h2 style="font-family: 宋体; margin-top: 13pt; margin-right: 0cm; margin-bottom: 13pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 13px; font-weight: normal; "><span lang="EN-US" style="font-family: 宋体; "><font face="Arial" style="font-family: 宋体; ">2.4&nbsp;</font></span><span style="font-family: 黑体; ">手机测试</span><span lang="EN-US" style="font-family: 宋体; "><o:p style="font-family: 宋体; "></o:p></span></h2><p class="MsoNormal" style="font-family: 宋体; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">将打包好地</span><span lang="EN-US" style="font-family: 宋体; ">.sis</span><span style="font-family: 宋体; ">文件上传至手机中，然后在手机的应用程序管理器中就可以看到我们打包好的文件。选择&#8220;安装&#8221;命令，系统会提示用户要安装的位置，选择安装位置后，我们制作的应用程序就安装到手机中了。</span></p><p class="MsoNormal" style="font-family: 宋体; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; text-indent: 21pt; "><span style="font-family: 宋体; ">我们回到手机的主菜单，就会发现新安装的</span><span lang="EN-US" style="font-family: 宋体; ">HelloWorld&nbsp;</span><span style="font-family: 宋体; ">应用程序。打开运行，结果和在模拟器中看到的基本是一样的。</span></p></span></span></span>
<img src ="http://www.cppblog.com/maolxu/aggbug/110119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/maolxu/" target="_blank">Learn</a> 2010-03-19 17:54 <a href="http://www.cppblog.com/maolxu/archive/2010/03/19/110119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>