青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

(1)模擬器里面測(cè)試的程序如何刪除?
for s60 2nd平臺(tái):
刪除/epoc32/release/wins/udeb/z/system/apps/myapp的目錄即可
for s60 3rd平臺(tái):
a、刪除/epoc32/release/winscw/udeb/myapp.exe
b、刪除/epoc32/release/winscw/udeb/z/private/10003a3f/appmyapp_reg.rsc
c、刪除/epoc32/release/winscw/udeb/z/resource/apps/myapp_aif.mif
d、刪除/epoc32/data/z/resource/apps/myapp.rsc
(2)生成log文件的方法
for s60 2nd/3rd都是一樣的方法,使用RFileLogger類,這個(gè)類與nokia無關(guān),是
symbian os提供的記錄log的方法。
在需要打印log的cpp文件中添加:
#include <flogger.h>
在mmp文件中添加
LIBRARY flogger.lib
手機(jī)的存儲(chǔ)中創(chuàng)建目錄C:\Logs\目錄,然后把自己想要的subfolder目錄也創(chuàng)建
出來,對(duì)于s60 2nd平臺(tái),直接用fexplorer或者system explorer在手機(jī)上創(chuàng)建
即可,對(duì)于s60 3rd平臺(tái),就沒那么簡(jiǎn)單了,內(nèi)置瀏覽器看不到,需要裝y-browser
才能看到,至于目錄,可以用BaflUtils類來判斷一下是否存在。
使用方法:
RFileLogger flog ;
// 連接那個(gè)RFs 
flog.Connect() ;
// 創(chuàng)建log,將保存在c:\Logs\subfolder\mylog.log(這個(gè)subfolder需要手工創(chuàng)建)
flog.CreateLog(_L("subfolder", _L("mylog.log", EFileLoggingModeOverwrite) ;  
// 具體使用查一下文檔
flog.Write(xxxx) ; 
// 類似TBuf的FormatL的語法
flog.WriteFormat(xxxx) ;
// 剩下的就是關(guān)閉方面的動(dòng)作了 
flog.CloseLog() ;
flog.Close() ; 
(3)s60 2nd/3rd模擬器聯(lián)網(wǎng)問題
s60 2nd比較麻煩,需要下載prnesock.lib和prnesock.dll,這兩個(gè)都需要拷貝到目錄
/epoc32/release/wins/udeb/
(我上傳了這兩個(gè)文件,就在下面)
下面,然后在mmp文件中添加如下條件編譯代碼:
#if defined(WINS)
LIBRARY prnesock.lib
#else
LIBRARY esock.lib
#endif
在自己的實(shí)際代碼中,涉及到接入點(diǎn)以及RConnection操作的都要用
#ifndef __WINS__ 或者 #ifndef __WINSCW__
#endif
給括起來,直接調(diào)用iSocketServ.Connect()即可實(shí)現(xiàn)在模擬器上利用win32的socket
連網(wǎng)和單步調(diào)試。

(4)s60 2nd程序中查找全局變量的方法
在mmp文件中添加:
OPTION  GCC  -save-temps
就會(huì)看到很多.S和.ii的文件,在里面查找是否含有.bss就可以知道你在哪里使用了
全局變量,.bss段的變量名稱,就是全局變量的名稱。
(5)s60 3rd模擬器啟動(dòng)以后總是NCNList KERN-EXEC 3 panic解決
這是s60 3rd fp1 sdk的emulator的bug,這個(gè)ncnlist是由于
New Message Notification API包不支持導(dǎo)致的。可以通過打上nokia的補(bǔ)丁解決。
這個(gè)API主要是為MTM編寫者使用的(恰好影響到偶的開發(fā)),常規(guī)的application開發(fā)者


(6)s60 3rd得到自簽名cert的生成方法
makekeys -cert -password yourpassword -len 512 -dname "CN=yourname OR=yourname" yourkey.key yourcert.cer
使用的時(shí)候,可以用如下命令:
signsis xxxx.sis xxxx.sisx yourcert.cer youkey.key yourpassword
這種方法得到的簽名只能夠具有basic capabilities:
LocalServices, UserEnvironment, NetworkServices, ReadUserData,
WriteUserData
(7)s60 3rd使用publisher id以后的cert可以得到的capabilities
Basic Cap:

LocalServices, UserEnvironment, NetworkServices, ReadUserData,
WriteUserData
Extended Cap:
Location, SwEvent, SurroundingsDD, ProtServ, PowerMgmt, ReadDeviceData
WriteDeviceData, TrustedUI, NetworkControl, MultimediaDD, CommDD, 
得不到的有(其實(shí)也能得到,但是需要進(jìn)一步跟設(shè)備廠商聯(lián)系):
AllFiles, DRM, TCB, DiskAdmin
(8)s60 3rd修改stack和heap默認(rèn)大小的方法
在project的mmp文件中添加下面的定義即可:
EPOCSTACKSIZE 0x2800
EPOCHEAPSIZE 0x1000 0x32000
前一個(gè)值是heap的最小值,后一個(gè)是最大值。
或者可以在代碼中動(dòng)態(tài)修改堆的大小,在projectname.cpp文件中找到E32Main函數(shù)
GLDEF_C TInt E32Main()
{
RHeap * heap = UserHeap::ChunkHeap(NULL,0x200000,0x300000) ;
User::SwitchHeap(heap);
return EikStart::RunApplication( NewApplication );
}
使用User::SwitchHeap()函數(shù)來獲得相對(duì)大一些的系統(tǒng)堆大小。
(9)s60 2nd/3rd的結(jié)構(gòu)體字節(jié)對(duì)齊問題
注意,在這里由于symbian os用的是gcce的修改版,所以標(biāo)準(zhǔn)c++的那一套
#pragama pack([n])
這種在win mobile上面工作良好的編譯預(yù)處理,在armi或gcce版本中會(huì)被編譯器忽略。
解決方案是在頭文件中添加:
#if defined(__WINS__)
#define PACKED
#else
#define PACKED __attribute__((packed, aligned(1)))
#endif
在結(jié)構(gòu)體定義中添加:
typedef struct _AABBCC_ {
    TUint  a ; 
    TUint8 b ; 
} PACKED AABBCC ; 
而且,如果決定要處理字節(jié)對(duì)齊的話,最好所有的結(jié)構(gòu)體都采用字節(jié)對(duì)齊的定義方式。
(10)關(guān)于Carbide C++的快捷鍵問題
編輯相關(guān)
Ctrl+ ↓ Ctrl+↑ 在編輯區(qū)上下滾動(dòng)(滾動(dòng)滑塊)
Ctrl+ ← Ctrl + → 向前向后移動(dòng)一個(gè)單詞
Ctrl+ Shift + ↓ Ctrl+ Shift + ↑ 向上向下移動(dòng)一個(gè)段落(可以方便的在函數(shù)方法中滾動(dòng))
Ctrl+G 搜索工作區(qū)中的聲明
Ctrl+ Shift +G 搜索所有引用
Ctrl+ Shift +S 保存所有文檔
Ctrl+F 查找替換
Ctrl + J 增量查找(根據(jù)動(dòng)態(tài)鍵盤輸入進(jìn)行動(dòng)態(tài)匹配)
Ctrl + k 查找替換下一個(gè)
Ctrl + L 轉(zhuǎn)到指定的行號(hào)
Ctrl+ Shift + F4 關(guān)閉所有編輯窗口
Ctrl + SHIFT + P 匹配對(duì)應(yīng)的括號(hào)
CTRL+SHIFT+X 將選中的小寫轉(zhuǎn)換為大寫
CTRL+SHIFT+Y 將選中的大寫轉(zhuǎn)換為小寫
Ctrl+M 將當(dāng)前窗口在最小化和最大化之間切換
Ctrl+Q 定義最后編輯的地方
Ctrl+O 快速顯示 OutLine
Ctrl+K 參照選中的Word快速定位到下一個(gè)
Ctrl+E 快速顯示當(dāng)前Editer的下拉列表
Ctrl+` 在c/c++中非常有用的功能 打開相關(guān)的源文件或頭文件
Ctrl+D 刪除當(dāng)前行
Ctrl+Alt+↓ 復(fù)制當(dāng)前行到下一行(復(fù)制增加)
Ctrl+Alt+↑ 復(fù)制當(dāng)前行到上一行(復(fù)制增加)
Alt+↓ 當(dāng)前行和下面一行交換位置(特別實(shí)用,可以省去先剪切,再粘貼了)
Alt+↑ 當(dāng)前行和上面一行交換位置(同上)
編譯、運(yùn)行
Ctrl+B - 重新編譯所有項(xiàng)目.
F11 - 調(diào)試(Debug)當(dāng)前項(xiàng)目.
Ctrl+F11 - 運(yùn)行當(dāng)前項(xiàng)目.
Ctrl+. and Ctrl., - 轉(zhuǎn)到下一個(gè)/前一個(gè)提示項(xiàng)目。當(dāng)編譯器為我們生成了很多編譯警告等信息的時(shí)候,這個(gè)功能將發(fā)揮區(qū)大的作用。
Ctrl+Shift+B - 切換當(dāng)前行的斷點(diǎn)狀態(tài)。注意,該快捷鍵僅僅在調(diào)試界面下是可用的,在Symbian開發(fā)界面下是不可用的。
Ctrl+Alt+B 程序編輯目標(biāo)項(xiàng)目
調(diào)試
F5 - 進(jìn)入當(dāng)前行函數(shù).
F6 - 執(zhí)行當(dāng)前行.
F8 - 繼續(xù)執(zhí)行.
Ctrl+R - 執(zhí)行到當(dāng)前行.
重構(gòu)相關(guān)
Alt + shift + r - 變量名函數(shù)名重構(gòu)
閱讀源碼
F3 - 查看變量的聲明
F4 - 查看某類的繼承層次關(guān)系
Ctrl + T 快速查看類的繼承關(guān)系
導(dǎo)航相關(guān)
F2 - 使編輯視圖獲得焦點(diǎn)
ALT+SHIFT+W 當(dāng)焦點(diǎn)在編輯區(qū)的時(shí)候顯示源文件的導(dǎo)航視圖(Outline,Navigator,C++ project)
Ctrl+F6 ,Ctrl+ SHIFT+ F6 在編輯視圖中對(duì)打開的文檔進(jìn)行進(jìn)行切換(類似于WINDOWS的 ALT+TLB和 ALT+SHIFT+TBL)
Ctrl+F7,Ctrl+ SHIFT+ F7 對(duì)全局視圖進(jìn)行切換
Ctrl+F8 ,Ctrl+ SHIFT + F8 - 界面組的切換 ,這個(gè)快捷鍵可以切換Symbian界面組和調(diào)試(Debug)界面組。
在Carbide.c++中我們可以設(shè)置菜單的Window | Preferences | General | Keys選項(xiàng)中,修改當(dāng)前的快捷鍵配置。加入你熟悉了其他IDE工具的快捷鍵配置,那么修改Eclipse/Carbide.c++的當(dāng)前設(shè)置可能會(huì)是十分有幫助的。(我本人就是這樣,鐘情于emacs)可以這樣修改Carbide C++環(huán)境:
Window->Preferences->General->Keys->Modify->Scheme->Emacs
這樣就行了,用起來很爽的說。
(11)關(guān)于symbian中進(jìn)行unix環(huán)境下的Universal Time和TTime轉(zhuǎn)換的方法
_LIT(KDateString1,"%D%M%Y%/0%1%/1%2%/2%3%/3 %-B%:0%J%:1%T%:2%S%.%*C4%:3%+B"); // 定義顯示的格式是 年/月/日 時(shí):分:秒.000000
TTime tm; 
// 這里傳入的1207823088就是unix下面UTC時(shí)間的十進(jìn)制表示
TTimeIntervalSeconds tm_seconds(1207823088) ; 
// local是TLocale的對(duì)象,這個(gè)對(duì)象比較大,最好不要在棧上創(chuàng)建,
// 可以做為類的成員變量或者在堆上創(chuàng)建
TTimeIntervalSeconds tm_offset(local.UniversalTimeOffset()) ; 
// 基準(zhǔn)時(shí)間根據(jù)UTC的標(biāo)準(zhǔn)設(shè)定為1970/01/01,0點(diǎn)0分0秒。
tm.Set(_L("19700000:000000.000000")) ; 
tm.FormatL(iTmpBuf, KDateString1) ; 
PrintBuf(iTmpBuf) ; 
// 根據(jù)unix UTC時(shí)間的定義,需要在基準(zhǔn)時(shí)間里面加入距離基準(zhǔn)時(shí)間的秒數(shù),還要加入時(shí)區(qū)
// 的偏移,我們是東八區(qū),正好需要加入8個(gè)小時(shí)
tm += tm_seconds ; 
tm += tm_offset ; 
tm.FormatL(iTmpBuf, KDateString1) ; 
PrintBuf(iTmpBuf) ; 
// 此時(shí)的tm里面就是我們所需要的symbian下的時(shí)間了。
(12)關(guān)于symbian 3rd sdk安裝中遇到的一些問題
如果不能成功安裝SDK,建議其參閱諾基亞論壇網(wǎng)站的討論區(qū)的帖子:
Can't install S60 3rd SDK:
http://discussion.forum.nokia.co ... ghlight=s60_3rd.xml
這個(gè)帖子提供了解決這一問題的迂回方案。開發(fā)者需要?jiǎng)?chuàng)建一個(gè)空文“S60_3rd.xml”,并將其置于3rd Edition SDK安裝包被解壓縮到的那個(gè)安裝目錄中,然后再進(jìn)行安裝。
如果多次安裝并卸載S60 3rd edition maintenance release SDK,安裝文件目錄的名字將不斷改變,如“\Symbian\9.1\S60_3rd_MR_1”或“\Symbian\9.1\S60_3rd_MR_2”為去除安裝序列號(hào)“1” 或“2”,開發(fā)者需要于安裝前從Windows注冊(cè)表中刪除下列鍵值:HKEY_LOCAL_MACHINE\SOFTWARE\Nokia\com.nokia.s60。
Under HKEY_LOCAL_MACHINE\SOFTWARE\Nokia look for a key called "com.nokia.s60" ( or "S60_3rd_FP1" for S60 3rd SDK FP1). After uninstalling the SDK delete this key from the registry (alternatively you can modify the value of the "Instances" string under thiskey) and on the next install the counter starts again from 0.
(13)關(guān)于symbian 3rd中對(duì)于Open C庫的支持
根據(jù)我的實(shí)驗(yàn),目前最新版的Open C庫是s60_openc_plugin_MR.zip,
需要配合配套的symbian 3rd sdk MR版本的才好用。
(14)在symbian中根據(jù)文件名得到該文件的路徑 
TFileName full_fname;
full_fname =iEikonEnv->EikAppUi()->Application()->AppFullName();
TFileName full_path;
TParse parse;
parse.Set(full_fname,NULL,NULL);
full_path.Copy(parse.DriveAndPath());
(15)在symbian 2nd, 3rd移植的時(shí)候,顯示不出來about文本消息
這個(gè)問題主要是3rd的Ui類中的ConstructL()函數(shù)引起的,盡管在2nd和3rd的平臺(tái)上都可以直接使用BaseConstructL()無參數(shù)和有參數(shù)的版本。但是,在需要顯示about dialog文本的時(shí)候,而且是在為3rd開發(fā)的時(shí)候,最好加上BaseConstructL(EAknEnableSkin)這個(gè)帶參數(shù)的調(diào)用。這樣才不會(huì)在顯示的時(shí)候出現(xiàn)問題。 
(16)在symbian 3rd的sdk中調(diào)試exe程序的方法
如果采用vs2005+carbide.vs插件來調(diào)試exe的話,按下F5啟動(dòng)模擬器以后,會(huì)莫名奇妙地打開一個(gè)白色的命令行窗口,這個(gè)窗口叫做“eshell”。這時(shí)候,需要開發(fā)人員手工啟動(dòng)這個(gè)exe程序(當(dāng)然需要現(xiàn)在程序中設(shè)置好斷點(diǎn)了)。
具體操作如下:
(a)cd private [回車]
(b)myappname [回車]
這里的myappname就是你需要調(diào)試的exe的名字了。這種方法的優(yōu)點(diǎn)在于,如果exe有屏幕繪圖或者按鍵截獲操作,也就是跟CWsSession有些關(guān)系的話,就可以用這個(gè)方式,既啟動(dòng)了模擬器的Windows Server又可以通過eshell手工啟動(dòng)你的exe。缺點(diǎn)是epoc啟動(dòng)速度太慢,需要等一段時(shí)間。
還有一種更迅速的方法,就是修改配置文件,例如:
C:\Symbian\9.2\S60_3rd_FP1\Epoc32\Data\epoc.ini
在該文件的第一行加入一句textshell,然后保存關(guān)閉。當(dāng)運(yùn)行epoc啟動(dòng)模擬器的時(shí)候,隨之啟動(dòng)的還有一個(gè)藍(lán)色的console輸出窗口。然后的過程就跟上面一樣,首先單擊一下模擬器,讓它獲得焦點(diǎn),然后用鍵盤輸入上面的(a),(b)兩句即可。這種做法的好處在于模擬器啟動(dòng)相當(dāng)快,直接進(jìn)入textshell模式,缺點(diǎn)是沒有開啟windows server對(duì)于有ui操作的exe來說,只能用第一種方案了。最后調(diào)試完畢后,不要忘記把epoc.ini文件恢復(fù)原狀。
(17)手工讀取手機(jī)的相關(guān)信息
*#06#   : 讀取手機(jī)的imei
*#0000# :讀取手機(jī)固件(firmware)版本號(hào)
*#2820#:讀取手機(jī)藍(lán)牙設(shè)備的Mac地址
Posted on 2009-06-10 14:59 曾浩 閱讀(913) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Symbian
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美福利视频网站| 欧美一区在线视频| 久久亚洲精选| 亚洲一区二区三区在线看 | 国产精品理论片在线观看| 久久综合狠狠综合久久综青草| 日韩网站在线看片你懂的| 麻豆精品一区二区av白丝在线| 欧美一区二区三区日韩| 亚洲欧美精品一区| 亚洲看片免费| 99pao成人国产永久免费视频| 亚洲欧洲日本国产| 亚洲第一页自拍| 亚洲人成在线观看一区二区| 91久久国产综合久久蜜月精品| 国产精品老牛| 久久婷婷综合激情| 久久电影一区| 久久久久99| 久久久精品网| 亚洲一区日本| 欧美一区在线看| 久久九九电影| 你懂的国产精品永久在线| 老司机午夜精品视频在线观看| 久久亚洲精品视频| 欧美电影免费观看网站| 欧美日韩高清在线播放| 欧美日韩中文字幕| 嫩模写真一区二区三区三州| 久久久久久夜| 美女视频黄免费的久久| 久久尤物电影视频在线观看| 久久亚洲春色中文字幕| 欧美激情精品久久久久| 91久久在线播放| 亚洲精品免费一二三区| 亚洲综合精品一区二区| 久久人人爽国产| 裸体素人女欧美日韩| 欧美亚洲在线播放| 欧美1区2区3区| 欧美系列亚洲系列| 精品999在线播放| 夜夜精品视频| 久久精品国产精品亚洲综合| 久久一区二区三区超碰国产精品| 欧美国产精品va在线观看| 99视频精品| 久热综合在线亚洲精品| 裸体歌舞表演一区二区| 麻豆成人av| 国产午夜精品麻豆| 亚洲视屏在线播放| 老司机午夜精品视频在线观看| 91久久精品国产91性色| 销魂美女一区二区三区视频在线| 欧美 日韩 国产精品免费观看| 国产精品www.| 亚洲精选在线| 裸体歌舞表演一区二区| 亚洲尤物在线| 欧美日韩在线免费观看| 亚洲二区精品| 久久久青草青青国产亚洲免观| 亚洲免费大片| 欧美精品免费视频| 亚洲国产精品一区制服丝袜 | 欧美一区免费| 欧美日韩国产经典色站一区二区三区| 国产亚洲精品aa午夜观看| 国产视频一区在线观看一区免费| 国产有码一区二区| 性色av一区二区怡红| 99国内精品久久| 欧美日韩福利在线观看| 日韩视频在线免费| 亚洲福利在线看| 噜噜噜在线观看免费视频日韩| 国产欧美在线看| 亚洲欧洲在线播放| 免费中文字幕日韩欧美| 久久精品国产一区二区三| 国产麻豆9l精品三级站| 国产人成精品一区二区三| 亚洲欧美国产高清| 国产精品mm| 99精品国产在热久久婷婷| 亚洲高清在线观看一区| 欧美成人国产一区二区| 在线播放国产一区中文字幕剧情欧美| 欧美一区二区三区在线观看视频| 一区二区三区黄色| 国产精品久线观看视频| 国产伦精品一区二区三区视频黑人 | 欧美日韩三级一区二区| 99re66热这里只有精品3直播| 免费在线成人av| 裸体女人亚洲精品一区| 国产亚洲精品aa| 老司机午夜精品视频| 免费在线成人av| 一本色道88久久加勒比精品 | 亚洲高清免费视频| 欧美韩国日本综合| 中文精品视频一区二区在线观看| 亚洲大片一区二区三区| 欧美日韩第一区| 午夜视频一区二区| 欧美在线国产精品| 亚洲区免费影片| 一区二区欧美在线观看| 国产欧美欧美| 亚洲风情亚aⅴ在线发布| 欧美日韩一区二区国产| 久久国产福利国产秒拍| 久久国产日本精品| 国产亚洲一区二区在线观看| 久久三级视频| 欧美日韩免费观看一区| 久久久久久伊人| 欧美天堂亚洲电影院在线播放| 久久精品亚洲一区| 欧美劲爆第一页| 久久夜精品va视频免费观看| 欧美日韩黄色大片| 久久一本综合频道| 国产精品vvv| 欧美国产日韩xxxxx| 国产精品免费区二区三区观看| 久久综合电影一区| 国产精品爱啪在线线免费观看| 老司机精品福利视频| 国产精品久久久久久亚洲毛片| 久久伊人免费视频| 国产精品扒开腿做爽爽爽软件| 欧美在线看片a免费观看| 欧美一区二区精品在线| 日韩亚洲欧美成人一区| 久久久噜噜噜久久| 亚洲在线免费| 狠久久av成人天堂| 亚洲国产精品久久久久| 国产午夜精品久久久久久免费视 | 99国产精品视频免费观看一公开 | 亚洲第一级黄色片| 亚洲天堂网站在线观看视频| 亚洲国产婷婷| 久久国产精品久久久久久久久久 | 一区二区三区在线免费观看| 欧美在线黄色| 欧美成年人网| 日韩一区二区久久| 欧美性视频网站| 亚洲欧洲av一区二区| 久久蜜桃资源一区二区老牛| 在线欧美一区| 欧美久久成人| 午夜精品久久久| 欧美大片免费观看| aaa亚洲精品一二三区| 欧美午夜精品久久久久久浪潮| 亚洲视频电影在线| 久久久噜噜噜久久狠狠50岁| 亚洲高清视频在线| 欧美日韩在线观看一区二区三区| 正在播放欧美视频| 麻豆久久婷婷| 亚洲专区免费| 亚洲国产精品一区二区www在线| 欧美日韩国产一区| 欧美一区综合| 亚洲美女诱惑| 蜜桃av噜噜一区| 亚洲专区一二三| 亚洲激情视频网| 国产欧美一区二区三区在线老狼| 免费黄网站欧美| 亚洲综合999| 亚洲风情在线资源站| 欧美一区二区三区日韩视频| 亚洲国内高清视频| 国产午夜精品久久久久久免费视| 欧美激情一区二区久久久| 欧美一区二区成人| 激情成人av在线| 欧美日韩亚洲免费| 久久夜色精品一区| 亚洲影院免费观看| 亚洲欧洲在线免费| 免费成人激情视频| 久久国产精品毛片| 亚洲综合国产精品| 一本色道久久综合亚洲精品小说| 亚洲高清不卡一区| 又紧又大又爽精品一区二区| 国产一区二区精品久久| 国产欧美亚洲精品| 国产精品乱看|