久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Symbian开发——Symbian开发知识(转)

發(fā)布時(shí)間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Symbian开发——Symbian开发知识(转) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

調(diào)研時(shí)發(fā)現(xiàn)這邊文章,有很多寶貴經(jīng)驗(yàn),也收藏一下。

轉(zhuǎn)自另一個(gè)CSDN博客:http://blog.csdn.net/andy205214/archive/2008/04/11/2282675.aspx

?

General Hints / 一般提示

學(xué)習(xí)S2,我的方法無非是:
·每天coding,多少小時(shí)你自己掌握,看你有多少時(shí)間了。

·coding的同時(shí),打開SDK Help,查里面的函數(shù)庫。

·資源管理器的“搜索”功能不能少,你可以在你的安裝目錄/series60ex里面找到Series60的范例代碼,/example這里找到Symbian的范例代碼

·范例代碼我是使用UltraEdit來察看并卻穇閱的,不要畏懼Nokia長長的example,他只是為了在一個(gè)例子里面展示能牽扯到的所有的功能,你所需要的可能只是一個(gè)類的幾行使用方法,找到那一段,把它c(diǎn)opy出來,用在你的.cpp里面理解就可以了。

前面是網(wǎng)下的,下面說說網(wǎng)上的。
·每天來這里看看首頁更新,有document就下載下來,是你所需要的就馬上看。

·看看DiscussionBoard,這里,Chinese Application Development > Symbian ,有別人的問題,你可以記住并且以后參考。

·自己遇到的問題,就在這里用AdvancedSearch找一下。

·NewLC www.newlc.com 是一個(gè)好網(wǎng)站,我發(fā)現(xiàn)的除了Forum Nokia之外唯一的S2站點(diǎn)。它里面的Tutior教學(xué)部分真的有很多好東西,我建議都給他離線瀏覽下載下來,我就是這么做的。不過它里面的論壇,我還 沒有看,主要是外國人太多,好像也都是提問的,真正解決問題的沒有這里那么好吧。

其它的,也沒有什么了,你要是想看市場,還有www.symbian.com和www.series60.com 。



中文問題


在模擬器或者真機(jī)上面顯示中文,這是一個(gè)不難的問題。
先 說說模擬器。因?yàn)槲液芫煤芫脹]有用過0.9中文版的模擬器了,所以對(duì)其情況也忘記的差不多了。我想如果是0.9中文版的模擬器,顯示中文應(yīng)該沒有什么大問 題了,不過SDK V0.9中不全的header&lib,這個(gè)會(huì)對(duì)你開發(fā)程序造成影響吧,所以我還是不建議現(xiàn)在仍然在使用SDK V0.9。
那 么使用英文版模擬器要如何顯示中文呢?其實(shí)是不可以顯示中文的。英文版的SDK中主要是說他的模擬器沒有制作成中文版,所以如果你在菜單中寫了中文,他是 無法顯示的。但是有一個(gè)例外,就是如果你在程序中實(shí)現(xiàn)Draw函數(shù)的時(shí)候使用了DrawText或者DrawTextVertical,并且事先把中文版 模擬器中的中文字體復(fù)制到了模擬器中,那么模擬器是可以顯示中文的。注意這其實(shí)是等同于“用字體在屏幕上面‘劃*’字”,其中的實(shí)現(xiàn)機(jī)理我想我還沒有什么 研究,扯遠(yuǎn)了肯定會(huì)出錯(cuò),所以大家如果有需要的話,在英文版模擬器上面Draw中文,可以復(fù)制一下中文版中的字體文件到英文版SDK的
epoc32/release/wins/udeb/z/system/fonts(大概是這里,我現(xiàn)在手邊沒有SDK來參考)
然后在DrawText之前調(diào)用一下字體就可以了。
*因?yàn)檎搲形南到y(tǒng)的訽因,我無法輸入那個(gè)關(guān)鍵的“籣”字,一橫一個(gè)田下面一個(gè)半包圍,所以暫時(shí)用這個(gè)錯(cuò)別字代替了,我目的就是說明它是Draw上去的。

在真機(jī)上面,大家顯示中文無非就是按照上面那篇文檔說的,一步一步來就可以了。
大體上,在程序中顯示中文分為固定的用戶界面中文字符串和程序運(yùn)行時(shí)生成字符串。第一類使用較多,而且也基本上可以代替第二類,所以我還是主張大家不要在你的.cpp里面寫中文字符串,雖然它是可以實(shí)現(xiàn)的。
用 戶界面中的字符串,Symbian系統(tǒng)是使用資源文件來保存并管理的。我們所需要知道的便是:在你的Project文件夾的data目錄下面,編糭你 的.RSS文件。這個(gè)文件中,你可以通過定義TBUF資源對(duì)象,來定義字符串。你定義的字符串,最好還是寫成一個(gè)假名,比如

RESOURCE TBUF r_myprj_str_somestring
? ? ? ? {
? ? ? ? buf=qtn_myprj_str_somestring;
? ? ? ? }

而這個(gè)qtn_myprj_str_somestring,你最好寫在myprj.loc里面,這樣:

#define qtn_myprj_str_somestring "Some String"

他的一個(gè)好處就是,你便于將你的程序作本地化/國際化處理。如果你的程序要做成很多語言的版本,那么你可以把你的用戶界面字符串寫成
myprj.en.loc
myprj.cn.loc
myprj.fr.loc
然后在編譯的時(shí)候,只需要在你的rss文件中include不同的loc就可以了。這個(gè)就是他系統(tǒng)實(shí)現(xiàn)機(jī)制的考慮所在。
準(zhǔn)備好了.RSS文件和.LOC文件并不是萬事大吉了,很多朋友在這里沒有試驗(yàn)成功的一個(gè)訽因就是在.RSS文件的頭部,忘了加上
注意在RSS文件重要加入
CHARACTER_SET UTF8
或者是忘記了把.LOC文件給轉(zhuǎn)換成UTF-8的格式。
我目前使用的是Windows NotePad來轉(zhuǎn)換UTF-8格式的,需要注意是如果你使用的是英文版的Windows,那么它會(huì)在LOC文件的頭部添加3個(gè)前導(dǎo)標(biāo)示字符,你需要再用UltraEdit[非UTF-8自動(dòng)辨認(rèn)模式]來刪除他們。


Descriptor/String 字符串相關(guān)

我們寫程序,幾乎很少不跟字符串打交道的,所以字符串這一塊兒自然成了一個(gè)平臺(tái)的很重要一塊兒。

因 為Symbian系統(tǒng)是面向移動(dòng)設(shè)備,用設(shè)計(jì)者的話說就是:資源受限的智能設(shè)備,另外它是基于ROM和RAM操作的,所以他們對(duì)于字符串的處理也是采用了 一套自己獨(dú)創(chuàng)的方式來進(jìn)行。這樣的機(jī)制,初學(xué)者乍看起來會(huì)很不習(xí)慣,摸不到頭腦,不知道他為什么要這么做。不過可以這樣說,跟她的內(nèi)存資源處理機(jī)制相比, 字符串方面Symbian所作的改動(dòng)還只是相當(dāng)于換了一個(gè)名稱而已,對(duì)于ISV級(jí)的開發(fā)者來說,它是在眾多Symbian系統(tǒng)中眾多獨(dú)有特性中最好掌握的 幾種之一。

在Symbian系統(tǒng)中,字符串被稱為Descriptor,你不用知道為什么,就把它當(dāng)作你熟悉的string也就好了。因 為要對(duì)字符串進(jìn)行操作,所以高級(jí)一些的平臺(tái),都把字符串寫成了一個(gè)獨(dú)立的類,當(dāng)作對(duì)象來對(duì)他們處理,而不像是C中,字符串是char[],然后有一批函數(shù) 來處理它。又考慮到 Symbian系統(tǒng)所處理的字符串有在RAM中的也有在ROM中的,而RAM又是十分寶貴的,Symbian處理字符串提供了不止一個(gè)類,就在這里有了一 點(diǎn)點(diǎn)不是那么直接的地方。
下面開始具體講解一下我的理解,

在Symbian中,字符串的抽象類是TDes,它可以是TDes16 業(yè)可以是TDes8,取決于你的程序是否處理Unicode。我們可以這樣理解, TDes就是char[],不過它不以'/0'結(jié)尾,而是把長度信息保存在了頭部,并且含有一個(gè)內(nèi)存地址來表示他的位置。正如前面所述當(dāng)今高級(jí)的平臺(tái)構(gòu) 架,都會(huì)把字符串給分裝成一個(gè)類,我們是把字符串當(dāng)作一個(gè)對(duì)象來處理的,所以抽象類我們是不能直接定義一個(gè)實(shí)例來使用的,抽象類的作用,在于傳遞函數(shù)的參 數(shù),在這個(gè)時(shí)候我們可以把函數(shù)傳遞的參數(shù)當(dāng)作最基本的抽象類來進(jìn)行處理。那么要直接使用一個(gè)字符串,我們?cè)撌褂檬裁茨?#xff1f;

情況分為兩種,如 果我們的字符串是比較短的,并且字符串的長度是相對(duì)已知的話,我們須要使用的是TBuf<len>,其中l(wèi)en表示長度。同樣,TBuf是一 個(gè)Unicode相關(guān)的類,他表示TBuf16或者TBuf8。定義這樣類型的一個(gè)字符串,我們使用這樣的語句
TBuf<100> buf100;
就 可以定義一個(gè)字符串了。然后,參看TBuf類在SDK文檔中的參考說明,我們就可以使用這樣的字符串了。注意,使用TBuf是事先知道他的大概長度的,使 用的時(shí)候不能溢出,否則會(huì)出現(xiàn)程序錯(cuò)誤而導(dǎo)致退出。另外,據(jù)說TBuf是被分配在了很寶貴的地方,所以盡量不要分配很長的TBuf,我想如果你的 TBuf長度超過了2000,哪怕是已知長度也最好換下面的第二種方式來分配好了。模擬器里面大家試驗(yàn)東西的時(shí)候可以分配很大很大的,沒有問題,只不過用 在真機(jī)上面的時(shí)候就要小心了。

另外一種,叫做HBufC,它是被分配在了Heap里面,可以在運(yùn)行時(shí)才決定他的大小,不過也不能過大。定義一個(gè)HBufC我們可以使用下面的語句
HBufC* heapBuf=HBufC::NewL(100);
這樣我們就定義了一個(gè)長度為100的heap字符串,需要注意的有幾點(diǎn)。
1,使用它地抽象類部分,也就是把它當(dāng)作字符串使用,需要用他的Des函數(shù)來返回他的TDes類,比如
heapBuf->Des()
,這樣來調(diào)用HBufC的字符串部分。
2, 因?yàn)镠eap字符串是一個(gè)新分配的對(duì)象,所以你必須在使用完之后立即手動(dòng)刪除它。我使用的是delete heapBuf;來刪除的,不過我覺得如果能夠使用Symbian系統(tǒng)中提供的CleanupStack庫來進(jìn)行刪除的話,可能會(huì)更好。我因?yàn)閷?duì)這一方面 還沒有什么研究,所以不敢在這里舉例子。
3,他的大小仍然是需要注意的,我的程序中分配過兩個(gè)0x8000長的Heap字符串,沒什么大問題。很 早很早年少無知的時(shí)候,曾綺在0.9SDK的模擬器中一下子分配了1MegaByte的HBufC,沒有任何問題。但是真機(jī)上面?_?_,我沒有試驗(yàn)過, 大家小心嘗試~~~~

最后還有一種叫做TPtrC這樣的東西,我們可以全當(dāng)他是一個(gè)指針,指向一個(gè)TDes,其實(shí)可以當(dāng)作是節(jié)省 heapBuf->Des()的鍵盤消耗,我們可以定義一個(gè)TPtrC pBuf;然后pBuf=heapBuf->Des(); 從此我們就可以把pBuf當(dāng)作一個(gè)TDes來處理了,我很少用TPtrC,所以也不太熟悉,不敢多說了。

需要注意的,
·在Symbian中,其實(shí)字符串都是按照Unicode編碼保存的TDes16。
·我不知道為何在有的時(shí)候,定義'/n'是管用的,可是在EDWIN中,我卻需要在TDes后面追價(jià)數(shù)值為0x2029的字符才可以換行。
· 論壇中,或者其它網(wǎng)站[比如www.newlc.com],有介紹TDes16和TDes8之間的互轉(zhuǎn),請(qǐng)注意如果他們不是中國人,pure chinese,請(qǐng)注意他們是否會(huì)忽略中文處理,僅僅是簡單的拋棄了高位為0的字節(jié)。如果是這樣方法,我們最好還是考慮一下。三思而后行。


平臺(tái)號(hào)及產(chǎn)品號(hào)-pkg打包

pkg file定義了安裝文件(sis)的內(nèi)容,它包括應(yīng)用程序的UID,一個(gè)支持的語言列表,目標(biāo)產(chǎn)品的UID和打包在sis的一組文件:
; MyGame.pkg
; Specifies an installation file for MyGame
;Languages
&EN
;Header
#,(0x1000ABCD),1,0,0
; Required line for Series 60 devices. Defines the target product
; UID.
(0x101F6F88), 0, 0, 0,
“/epoc32/release/thumb/urel/MyGame.app”-“!:/system/apps/MyGame/MyGame.app”
“/epoc32/release/thumb/urel/MyGame.rsc”-“!:/system/apps/MyGame/MyGame.rsc”
“/epoc32/release/thumb/urel/MyGame.mbm”-“!:/system/apps/MyGame/MyGame.mbm”
“/epoc32/release/thumb/urel/MyGame.aif”-“!:/system/apps/MyGame/MyGame.aif”
“../MyGame/MyGameSample.wav”-“!:/system/apps/MyGame/MyGameSample.wav”

Product UID定義了應(yīng)用程序的目標(biāo)環(huán)境,大部分的s60版本是向下兼容的。
參見下表:
Nokia 7650 0x101F6F87
Nokia 3650 0x101F7962
Nokia 9210/9290 0x10005E33
Nokia N-gage 0x101F8A64
Siemens SX1 0x101F9071

Series 60 Platform v0.9 0x101F6F88
Series 60 Platform v1.0 0x101F795F
Series 60 Platform v1.1 0x101F8201
Series 60 Platform v1.2 0x101F8202
Series 60 Platform v2.0 0x101F7960


如果程序需要依據(jù)各不同的平臺(tái)來進(jìn)行安裝,那就可以使用條件語句塊來處理,這時(shí)pkg里的語句如下:
;
; Files to install
;
IF MachineUID=0x101fb3dd
; Nokia 6600 specific files
“../MyFiles/FileFor6600.dat”-“!:/system/apps/MyGame/MyData.dat”
ELSEIF MachineUID=0x101f466a
; Nokia 3650 specific files
“../MyFiles/FileFor3650.dat”-“!:/system/apps/MyGame/MyData.dat”
ELSE
; Files for other devices
“../MyFiles/FileForOthers.dat”-“!:/system/apps/MyGame/MyData.dat”
ENDIF

如上的使用你就可以生成一個(gè)支持多平臺(tái)的安裝文件,除了機(jī)器UID外,還有很多屬性,如內(nèi)存和CPU的標(biāo)識(shí):

注意,機(jī)器UID和Product UID是不同的,見下:
Nokia 7650 0x101F4FC3
Nokia 3650 0x101F466A
Nokia 6600 0x101FB3DD
Nokia 9210/9290 0x10005E33
Nokia N-Gage 0x101F8C19
Win32 Emulator 0x10005F62

可以使用如下的代碼來找出該設(shè)備的機(jī)器UID:
#include <hal.h> //and link with hal.lib
TInt machineUid = 0;
HAL::Get(HALData::EmachineUid, machineUid);


File Manipulatating/文件操作

其 實(shí)這方面的操作相對(duì)于Symbian的某些其他部分來說還是跟其他平臺(tái)比較類似的,并無太大的不同。從最訽始的Standard C中的FILE結(jié)構(gòu)到C++中的stream,再到目前的各種各樣的流行的語言、腳本什么的,對(duì)文件的操作無非是打開一個(gè)用字符串指定文件名的文件,給出 打開方式(Binary or Text, Read or Write),然后獲得“文件對(duì)象”,你可以當(dāng)作這個(gè)文件的實(shí)例或者句柄什么的(Instance or Handle),知道意思就行了,反正就是這么一回事;p?_?_在我們目前的面向?qū)ο蟪绦蛑?#xff0c;如果要對(duì)文件進(jìn)行讀取或者寫入等操作,無非就是調(diào)用在這個(gè) 文件對(duì)象各種過程,比如寫入,讀取,Seek,之類的,等到用完了文件再用Close之類的過程關(guān)閉它以釋放資源。這個(gè)就是我們編成的時(shí)候大致的操作文件 的抽象描述。Symbian在這方面與其他平臺(tái)并無太大差別。

下面結(jié)合Code說說具體的操作:
上面說了Symbian在文件操 作方面與其他平臺(tái)差別不大,但是全無差別也是不可能的。因?yàn)镾ymbian系統(tǒng)是為資源受限設(shè)備設(shè)計(jì)的,這一點(diǎn)我相信大家都聽得耳朵起糨子了-_-,所以 他的文件資源也是由系統(tǒng)管理的,我們要通過建立FileServer來與系統(tǒng)的文件服務(wù)通信,以建立客戶端--服務(wù)器模式來訪問文件。說了那么玄,其實(shí)很 簡單地,也就是說我們?cè)诩兇獾氖褂梦募糠值臅r(shí)候,之前要Connet一下FileServer,之后要Close一下 FileServer,就這么簡單。
如:

Code:

RFs fs;
User::LeaveIfError(fs.Connect());
/*
* Your File Manipulatating Code Here...
*/
fs.Close();

我的Code其實(shí)并不好,如果是Symbian老手,我相信即使是簡單的fs.Connect();也會(huì)有隨后馬上進(jìn)行的CleanupStack類的操作,只是我目前還不熟悉,不敢妄自誤導(dǎo)大眾~~
下 面的就是文件了,我們?cè)赟ymbian中使用的比較“低級(jí)”或者說“底層”的訽始文件對(duì)象是通過RFile類來實(shí)現(xiàn)的,大家只要參考一下 DeveloperLibrary的這個(gè)部分就清楚了,位置是:(? Developer Library ? API Reference ? C++ API reference ? File Server Client Side ? RFile)
下面給兩個(gè)例子,來說明一下文件的打開,關(guān)閉,讀,寫,Seek等操作。

Code:

RFs fs;
User::LeaveIfError(fs.Connect());
RFile file
User::LeaveIfError(file.Open(fs, _L("C://file.foo"), EFileWrite));
TBuf8<256> buf;
file.Read(buf, 256);
file.Seek(ESeekStart, 911);
file.Write(_L8("Some thing you wanna write..."));
file.Close();
fs.Close();

注: 以上代碼沒有綺過測試,沒有綺過編譯檢查,但是綺過了對(duì)照SDK DeveloperLibrary的檢查,技術(shù)上應(yīng)該不會(huì)有什么問題。有兩點(diǎn)要說明的,在程序中寫死(HardCode)變量長度和位置什么東西還是最好 用MACRO代替,這可能是所有programmer的常識(shí)了,我并不是在教大家而是指名我的實(shí)例代碼中的不足;另一點(diǎn)就是_L8(), _L()這兩個(gè)MACRO是Symbian不支持大家再使用的了,大家最好用_LIT()或者_(dá)LIT8()來代替好了,此處僅僅為了方便使用了一下。
大 家可以很容易從DeveloperLibrary看出,RFile支持的讀寫只有TDes8這種類型,也就是說它只能以byte,或byte數(shù)組的形式寫 入或者讀出數(shù)據(jù)。如果大家想使用文本文件或者二進(jìn)制數(shù)據(jù)文件的話,就要借助更高級(jí)的文件類了,他們的使用方法仍然是大同小異。
TFileText 提供了文本文件的讀寫,從他的API Reference中很容易看出來,在我們建立好的TFileText對(duì)象上,只要Set一個(gè)RFile到它本身上面,我們就可以用這個(gè) TFileText對(duì)象來很容易的對(duì)文件(就是底層的RFile)來進(jìn)行文本文件的讀寫了。
與此類似,RFileReadStream對(duì)象,在構(gòu) 造的時(shí)候只需指明構(gòu)建在哪個(gè)RFile對(duì)象上,我們就可以方便的在這個(gè)RFile對(duì)象上進(jìn)行數(shù)據(jù)的操作,比如讀出一個(gè)32bit的整數(shù),讀出一個(gè)64比特 實(shí)型數(shù)。RFileWriteStream進(jìn)行的是寫入方面的操作,操作方式與讀入類相同,就不贅述了。

從上面的例子和說明我們可以看出,Symbian系統(tǒng)的文件操作幾乎與其他平臺(tái)沒什么太大的不同,也是符合所有的抽象文件操作要求的。對(duì)文件的操作只要我們看看DeveloperLibrary,記住幾個(gè)常用的過程,就沒有什么困難的了。

希望我寫的文字能給大家?guī)硇椭?#xff01;


為 kcomex 補(bǔ)充兩點(diǎn):
1、symbian的所有文件名中最好不好含有空格等特殊字符,負(fù)責(zé)編譯可能出錯(cuò),我用0.9SDK是這樣的。
2、 如果編譯的時(shí)候出現(xiàn)了你不知道的文件夾,請(qǐng)將mmp文件所在的文件夾中的.bat和.inf文件刪掉,用.mmp重新生成這兩個(gè)文件。我一般都是使用 mmpclick這個(gè)工具來生成的,因?yàn)槊钚挟吘共环奖恪jP(guān)于mmpclick的使用,在SDK附帶的工具中有詳細(xì)的說明。

如何給模擬器發(fā)短信

建議從諾基亞論壇上下載安裝"Nokia Connectivity Framework"。我不知道它是否支持在真機(jī)和仿真器之間互發(fā)短信,但我用它在兩個(gè)仿真器之間互發(fā)過短信,下面簡要說一下當(dāng)時(shí)的配置過程。

1. 安裝SDK
安裝S60 SDK 2.2和S60 SDK 2.3
安裝"Nokia Connectivity Framework 1.2"

2. 配置環(huán)境
打 開"Nokia Connectivity Framework",將左側(cè)窗口中的"Projects"->"Terminal SDKs"->"Series 60 2nd Ed. SDK for Symbian OS FP2 ...",和"Projects"->"Terminal SDKs"->"Series 60 2nd Ed. SDK for Symbian OS FP3 ..."拖到右側(cè)的窗口中,此時(shí)右側(cè)窗口中出現(xiàn)兩個(gè)仿真器的圖標(biāo),圖標(biāo)下側(cè)列出了該仿真器的藍(lán)牙地址和MMS/SMS號(hào)碼。
然后用鼠標(biāo)從其中一個(gè)圖標(biāo)向另一個(gè)圖標(biāo)引一條連線。

3. 啟動(dòng)環(huán)境
分別在兩個(gè)仿真器圖標(biāo)上單擊右鍵,然后從彈出式菜單中選擇"Start Product"啟動(dòng)仿真器。

4. 發(fā)送短消息
進(jìn)入某個(gè)仿真器的"Messages"應(yīng)用程序,編寫一條短信,其中"to:"域填寫另一個(gè)仿真器的SMS號(hào)碼,然后發(fā)送該短信。首次發(fā)送時(shí)會(huì)彈出對(duì)話框要求設(shè)置服務(wù)中心的號(hào)碼,隨便填個(gè)數(shù)(我填的1),點(diǎn)OK就行了。

5. 接收短消息
打開另一個(gè)仿真器的"Messages"應(yīng)用程序,就能看到"Inbox"收到了剛才發(fā)的短信。


symbian下面制作DLL 的流程

首先咱們假設(shè)要封裝一個(gè)叫做CMyClass的東西。先叢工程文件入手:

MyClass.mmp
-------------------
代碼:

TARGET MyClass.dll
TARGETTYPE??dll
UID 0x1000008d 0x10004268 //注意,這里換上你的UID
SOURCEPATH? ?../src
SOURCE? ?MyClass.cpp
SYSTEMINCLUDE? ?.
SYSTEMINCLUDE? ?/epoc32/include
SYSTEMINCLUDE? ?/epoc32/include/libc

LIBRARY euser.lib
#if defined(WINS)
deffile ./MyClassWINS.def
#else if defined(ARM)
deffile ./MyClassARM.def
#endif

NOSTRICTDEF
EXPORTUNFROZEN



好,一半已經(jīng)搞定了,再堅(jiān)持一下。

MyClass.h
--------------
代碼:

class CMyClass : public CBase
{
public: // 這些IMPORT_C開頭的家伙就是我們可以從別的程序中調(diào)用的函數(shù)

IMPORT_C static CMyClass* NewL();
IMPORT_C static CMyClass* NewLC();
IMPORT_C ~CMyClass();
public:
IMPORT_C void DoSomething();
private:
CMyClass();
void ConstructL();
};



很晚了,我偷個(gè)懶,上面的代碼只寫了重要的部分,那些個(gè)#include什么的麻煩看官們自己補(bǔ)齊吧。

MyClass.cpp
-----------------
代碼:

// DLL Entry Point。這是最重要的東西,別忘了哦,每個(gè)DLL都需要它。
GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
{
return(KErrNone);
}

EXPORT_C void CMyClass::DoSomething()
{
??// 好,我承認(rèn),這個(gè)函數(shù)也許應(yīng)該叫做DoNothing才對(duì)。:-)
??return ETrue;
}

EXPORT_C CMyClass* CMyClass::NewL()
{
? ?CMyClass* self = NewLC();
? ?CleanupStack::Pop(self);
? ?return self;
}
...


其實(shí)大家注意到了,問題關(guān)鍵就在這對(duì)IMPORT_C...EXPORT_C上。這些函數(shù)就是你的DLL所定義的API接口!

好了,基本完成了,我們編譯它!abld build wins udeb

編譯結(jié)束后,你會(huì)在epoc32的那堆目錄下找到一個(gè)MyClass.lib以及生成的DLL! 是的,就這么簡單![/code]


應(yīng)用程序總是中斷的分析


檢查內(nèi)存泄漏的方法:

__UHEAP_MARK;

你得代碼中需要檢查的部分

__UHEAP_MARKEND;


無原因退出主要有以下幾個(gè)原因:
1、沒有處理Leave異常,也就是有沒有被Trap的Leave函數(shù)。所有的Leave函數(shù)必須在程序的某個(gè)地方被TRAP, TRAPD, 或TRAP_IGNORE涵蓋到。這是最初要的原因
2、訪問了非法的內(nèi)存區(qū)域
3、修改了非法的內(nèi)存區(qū)域?qū)е孪到y(tǒng)服務(wù)出錯(cuò)。這個(gè)問題可以在Symbian 9以后實(shí)現(xiàn)Platform Security之后解決
4、沒有找到需要的庫。缺少所需要的DLL文件等等
5、錯(cuò)誤的資源文件,RSC文件的版本和程序中調(diào)用所需的資源文件不一致
6、調(diào)用了系統(tǒng)不支持的功能。例如類似調(diào)用Camera功能的時(shí)候要考慮到不同手機(jī)產(chǎn)品相機(jī)的差別,需要安裝相應(yīng)的FP (Feature Pack)



如何運(yùn)行app和exe程序

Symbian有2種類型的本地程序:
APP是有GUI的程序,因此能夠被終端用戶使用
EXE通常是服務(wù)端或命令行程序,通常隱蔽的運(yùn)行。沒有GUI,不能直接從主菜單運(yùn)行

運(yùn)行指南

如果你是一個(gè)終端用戶想運(yùn)行APP:它會(huì)在你的電話菜單中列出如果它已經(jīng)安裝

當(dāng) 一個(gè)EXE程序在主菜單不可見時(shí)不能直接運(yùn)行EXE程序。試著從INBOX運(yùn)行它(如果你通過紅外或藍(lán)牙下載過它,它可能存儲(chǔ)在INBOX里)會(huì)導(dǎo)致一個(gè) 安全錯(cuò)誤。首先,你需要安裝一個(gè)文件管理器(比如FileMan或FExplorer),瀏覽它存儲(chǔ)的位置(在我的3650上INBOX的目錄在E:/ system/Mail/xxx),然后運(yùn)行它。

運(yùn)行程序
當(dāng)你知道運(yùn)行APP或EXE程序使用哪個(gè)API后是非常簡單的事。

運(yùn)行EXE程序:
#include
...
_LIT(KMyAppName, "c://system//Apps//MyApp//MyApp.exe");
EikDll::StartExeL(KMyAppName);

下面的代碼運(yùn)行APP比較復(fù)雜但允許執(zhí)行特定的文檔
#include
#include
...
_LIT(KMyAppName, "c://system//Apps//MyApp//MyApp.app");
_LIT(KMyDocName, "c://Documents//MyApp.dat");

CApaCommandLine * cmd=CApaCommandLine::NewL();
cmd->SetLibraryNameL(KMyAppName);
cmd->SetDocumentNameL(KMyDocName);
cmd->SetCommandL(EApaCommandRun);
EikDll::StartAppL(*cmd);

運(yùn)行瀏覽其他的NOKIA程序
如果你打算開始基于Series 60的ROM 程序,在NOKIA論壇查找關(guān)于外部程序查看文檔的問答可以給你帶來收獲

下面的代碼將開始瀏覽特定的頁:
#include // apgrfx.lib

void NNewLCUtils::StartBrowser(const TDesC& aUrl)
{
? HBufC* param = HBufC::NewLC( 256 );
? param->Des().Format( _L( "4 %S" ),&aUrl );

? // Wap Browser's constants UId
? const TInt KWmlBrowserUid = 0x10008D39;
? TUid id( TUid::Uid( KWmlBrowserUid ) );

? TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
? TApaTask task = taskList.FindApp( id );
? if ( task.Exists() )
? {
??? HBufC8* param8 = HBufC8::NewLC( param->Length() );
??? param8->Des().Append( *param );
??? task.SendMessage( TUid::Uid( 0 ), *param8 ); // Uid is not used
??? CleanupStack::PopAndDestroy(); // param8
? } else{
??? RApaLsSession appArcSession;
??? User::LeaveIfError(appArcSession.Connect()); // connect to AppArc server
??? TThreadId id;
??? appArcSession.StartDocument( *param, TUid::Uid( KWmlBrowserUid ), id );
??? appArcSession.Close();
? }
? CleanupStack::PopAndDestroy(); // param
}




將你的程序帶到前臺(tái)或后臺(tái)

這篇文章將向你展示如何在你的程序得到或失去屏幕焦點(diǎn)的時(shí)候控制它們和怎樣控制它們。

在 焦點(diǎn)改變的時(shí)候開始。Series 60系列的框架將在程序得到或失去屏幕焦點(diǎn)的時(shí)候通過CAknAppUi::HandleForegroundEventL(TBool aForeground)發(fā)出通知。當(dāng)你的程序得到焦點(diǎn)的時(shí)候參數(shù)aForeground為ETrue,失去焦點(diǎn)的時(shí)候?yàn)镋False。

如果你需要做一些特定的操作,你需要重載這個(gè)函數(shù)。這有一個(gè)不失去焦點(diǎn)的例子
void CMyAppUi::HandleForegroundEventL(TBool aForeground)
{
? // Call Base class method
? CAknAppUi::HandleForegroundEventL(aForeground);

? if(aForeground) {
??? // We have gained the focus
??? ...
? } else {
??? // We have lost the focus
??? ...
? }
}


改變焦點(diǎn)。你總是能夠請(qǐng)求改變你程序的焦點(diǎn)使用命令TApaTask::SendToBackground() and TApaTask::BringToForeground()。下面代碼片段顯示怎樣從AppUi使用它們:
void CMyAppUi::BringToForeground()
{
// Construct en empty TApaTask object
// giving it a reference to the Window Server session
TApaTask task(iEikonEnv->WsSession( ));

// Initialise the object with the window group id of
// our application (so that it represent our app)
task.SetWgId(CEikonEnv::Static()->RootWin().Identifier());

// Request window server to bring our application
// to foreground
task.BringToForeground();
}

我沒有測試下面的代碼,但你可能可以使用下面的代碼控制其他的程序:

// Bring the application "theApp" to background
TApaTaskList tasklist(iCoeEnv->WsSession());
TApaTask task(tasklist.FindApp(_L("theApp")));
task.SendToBackground(); // or BringToForeground()


Symbian 程序編譯的過程


1. C++ BuilderX
Symbian 的開發(fā)環(huán)境似乎不是那么容易配置.不過Borland的C++ Builder對(duì)Symbian的支持比較好,里面還有專門針對(duì)Symbian開發(fā)的工具選項(xiàng)呢.不過由于Microsoft Visual C++我用得比較熟悉,而且,有Visual Assist這樣強(qiáng)大的工具支持,所以我覺得還是在Microsoft Visual C++上開發(fā)比較適合我.
2. 命令行的編譯
命令行的編譯應(yīng)該是SDK的文檔中有講解的.針對(duì)Symbian SDK中的Series60Ex的Graphics的例子還說吧.
a) 首先我們得用命令行到Series60Ex/Graphics/Group這個(gè)目錄.然后需要設(shè)置VC的環(huán)境變量,最好的辦法就是直接運(yùn)行/ Microsoft Visual Studio .NET 2003/Vc7/bin/vcvars.bat這個(gè)批處理文件.我的做法就是Group這個(gè)目錄建立一個(gè)command.bat文件,里面的內(nèi)容如下
PATH=%PATH%;D:/Microsoft Visual Studio .NET 2003/Vc7/bin
Cmd
然后,我只要在Windows里雙擊這個(gè)文件,就會(huì)自動(dòng)到這個(gè)目錄的命令提示符下,然后輸入vcvars32 + 回車,就設(shè)置好了VC的環(huán)境變量.
b) 輸入bldmake bldfiles.??是基于perl語言的操作,所以說一定要裝Perl才用使用SDK.
c) 如果是編譯生成模擬器運(yùn)行的,那么使用
??abld build wins udeb
? ? 如果是編譯生成機(jī)器上跑的,那么就使用
??abld build armi urel
編譯后,有兩個(gè)目錄是它給你生成的.如果你想重新生成,可以通過手動(dòng)刪除這兩個(gè)目錄.

工程編譯目錄:
/Symbian/6.1/Series60/Epoc32/BUILD/SYMBIAN/6.1/SERIES60/SERIES60EX/GRAPHICS/GROUP
保存的編譯的MAKE文件, OBJ文件等等.

程序在模擬器的目錄
/Symbian/6.1/Series60/Epoc32/Release/wins/UDEB/Z/SYSTEM/apps/graphics
保存了模擬器上運(yùn)行的App文件,只要?jiǎng)h除這個(gè)目錄,模擬器上就沒有這個(gè)程序了.

3. 全局非靜態(tài)變量引起的錯(cuò)誤
我在view的cpp的增加了一個(gè)Tint x;在模擬器上運(yùn)行沒有任何問題.當(dāng)我用armi方式編譯到目標(biāo)機(jī)器上的時(shí)候,出現(xiàn)了一個(gè)奇怪又經(jīng)典的錯(cuò)誤.
PETRAN - PE file preprocessor V01.00 (Build 183)
Copyright (c) 1996-2001 Symbian Ltd.

ERROR: Dll 'Graphics[10005BBE].APP' has initialised data.
make[1]: *** [../../../EPOC32/RELEASE/ARMI/UREL/GRAPHICSAPP] Error -2
make: *** [TARGETGRAPHICS] Error 2
make -r -f "/Symbian/6.1/Series60/EPOC32/BUILD/SYMBIAN/6.1S/SERIES60/SERIES60EX/BMPMANIP/GROUP/ARMI.make" FINAL CFG=UREL VERBOSE=-s

解決辦法: 1.把全局非靜態(tài)變量變成全局靜態(tài)變量,static
? ? 2.把全局變量編成類里面的成員變量

這樣個(gè)問題估計(jì)是Symbian的書上說的那樣,編譯成ARMI最后目標(biāo)的時(shí)候,編譯器要對(duì)代碼中的內(nèi)存使用進(jìn)行嚴(yán)格檢查所造成的.
http://discussion.forum.nokia.com/forum/showthread.php?s=&threadid=27446


從Symbian 9設(shè)備的文件管理器運(yùn)行EXE文件

Symbian 9 設(shè)備將所有的Exe文件定位與“/sys/bin”文件夾下,大多數(shù)情況下,我們不能從文件管理器來訪問它。在這里有一個(gè)很好的方式來實(shí)現(xiàn)如何從一個(gè)S60 3rd的設(shè)備上啟動(dòng)exe文件。

當(dāng) 我們初次拿到S60 3rd設(shè)備,準(zhǔn)備移植程序到這個(gè)平臺(tái)時(shí),我們多次發(fā)現(xiàn)一些問題。在PKG文件腫,會(huì)發(fā)現(xiàn)一些錯(cuò)誤,exe文件被寫入錯(cuò)誤的文件夾。在之前的版本中,exe 文件放在“/sys/bin“目錄下,使用我們的SysExplorer(Eric Bustarret開發(fā)的文件管理系統(tǒng)),我們嘗試啟動(dòng)那些可見的exe文件,我們驚奇的發(fā)現(xiàn),它啟動(dòng)了,相當(dāng)與在“/sys/bin”下。

因此,如果你真的需要啟動(dòng)exe文件:
1。拷貝“/sys/bin”下的exe文件
2。復(fù)制它到一個(gè)可見目錄
3。使用SysExplorer,到該目錄運(yùn)行它



CCoeControl類中Draw()函數(shù)的調(diào)試

自定義控件往往通過重載CCoeControl:: Draw() 方法來實(shí)現(xiàn)它的填充。然而,當(dāng)你單步調(diào)試代碼的時(shí)候,每個(gè)指令沒有立即顯示到屏幕上,因?yàn)樗峭ㄟ^window服務(wù)實(shí)現(xiàn)的。

慶幸的是,你可以改變它,你可以將每次畫圖都立即顯示到屏幕上,添加這段代碼到你的AppUi::ConstructL()中:
CODE:
#ifdef _DEBUG
iEikonEnv->WsSession().SetAutoFlush(ETrue);
#endif

這段代碼將強(qiáng)制每個(gè)圖形上下文繪制命令,立即顯示出來,這樣可以避免window服務(wù)緩沖后刷新。

這意味著,你可以看到每次畫圖代碼而產(chǎn)生的效果,到發(fā)布版中,記住去掉它,否則他將影響程序的運(yùn)行效率。


在S60 3rd的手機(jī)上顯示所有已安裝程序的Uid

一個(gè)應(yīng)用程序它可以顯示設(shè)備上所有已安裝程序的Uid。

該程序從S60 2.x 移植到 S60 3.x

S60 2.x的源代碼可以在Forum Nokia 找到,下面的代碼是S60 3.0的。

概要:

以下代碼將顯示手機(jī)上安裝的應(yīng)用程序的Uid,它使用了下面的類。
CODE:
? ?? ???RApaLsSession iLsSession;
? ?? ???MAppUidObserver& iObserver;
? ?? ???RArray<TAppInfo> iApps;



? ?? ? class TAppInfo
? ?? ???{
? ?? ?? ?? ?? ???public:
? ?? ?? ? TInt32 iAppUid;
? ?? ?? ? TApaAppCaption iAppCaption;? ?? ?? ?? ?? ?
? ?? ???};

? ?? ?? ?void CAppUidViewerEngine::AppsToUiL()
? ?? ???{
? ?? ???TApaAppInfo apaAppInfo;
? ?? ???TAppInfo appInfo;
? ?? ???iApps.Reset();

? ?? ???// Get info on all apps, then iterate through each app
? ?? ???User::LeaveIfError(iLsSession.GetAllApps());
? ?? ???while(iLsSession.GetNextApp(apaAppInfo) == KErrNone)
? ?? ?? ?? ?? ? {
? ?? ?? ?? ?? ? appInfo.iAppCaption = apaAppInfo.iCaption;
? ?? ?? ?? ?? ? appInfo.iAppUid = apaAppInfo.iUid.iUid;
? ?? ?? ?? ?? ? User::LeaveIfError(iApps.Append(appInfo));
? ?? ?? ?? ?? ? }
? ?? ?? ?? ?? ?
? ?? ???//??iObserver.AppsFoundL(iApps);
? ?? ???}

以上主要代碼。

這里是源代碼文件: [attach]531[/attach]



在運(yùn)行時(shí)為S60程序提供多國語言支持

我準(zhǔn)備示范,如何使應(yīng)用程序在運(yùn)行時(shí)支持多國語言。下面的例子中,我使用了3種語言:英語、法語和德語。

修改MMP文件

第一步是修改MMP文件。在MMP文件中你可以看到這樣一行:


CODE:
LANG? ?? ?? ?? ?? ? SC

修改成:


CODE:
LANG? ?? ?? ?? ?? ? 01 02 03

創(chuàng)建3種語言文件

我們將支持3種語言,英語、法語、德語,本地文件的擴(kuò)展名分別為:l01,l02和l03。你可以在本地化使用所有的字符。

修改LOC文件

現(xiàn)在你需要修改成下面的LOC文件


CODE:
// 01 = (British) English
#ifdef LANGUAGE_01
? ?? ???#include "MultiLang.l01"
#endif

// 02 = French
#ifdef LANGUAGE_02
? ?? ???#include "MultiLang.l02"
#endif

// 03 = German
#ifdef LANGUAGE_03
? ?? ???#include "MultiLang.l03"
#endif

修改YourAppAif.rss文件

YourAppaif.rss 文件中需要像這樣本地化你的應(yīng)用程序標(biāo)題:


CODE:
RESOURCE AIF_DATA
? ? {
? ? caption_list=
? ?? ?? ?? ?? ? {
? ?? ?? ?? ?? ? CAPTION { code=01; caption="MultiLang"; }, // Eglish
? ?? ?? ?? ?? ? CAPTION { code=02; caption="MultiLang"; }, // French
? ?? ?? ?? ?? ? CAPTION { code=03; caption="MultiLang"; }??// German
? ?? ?? ?? ?? ? };
? ?? ?? ?? ?? ?
? ? app_uid=0x02a5dd83;
? ? num_icons=2;
? ? embeddability=KAppNotEmbeddable;
? ? newfile=KAppDoesNotSupportNewFile;
? ? }

修改由CAknApplication繼承來的類

重寫CEikApplication 中的 ResourceFileName() 函數(shù)到你的CYourApplicationApp 類.


CODE:
TFileName CMultiLangApp::ResourceFileName() const
? ?? ???{
? ?? ???return TFileName();
? ?? ???}

修改AppUi 類

首先,你需要為AppUi 類中的 ConstructL()函數(shù)的BaseConstructL() 中傳遞ENonStandardResourceFile 參數(shù):


CODE:
void CMultiLangAppUi::ConstructL()
? ? {
? ? BaseConstructL( ENonStandardResourceFile );
? ? //...
? ? }

接著,在你的AppUi類中創(chuàng)建下列新的函數(shù):


CODE:
void CMultiLangAppUi::ChooseLanguageL(TInt aLanguageIndex)
? ?? ???{
? ?? ???_LIT(KResourceFileName, "MultiLang.r%02d");
? ?? ???TFileName resFileName;

? ?? ???resFileName.Format(KResourceFileName, aLanguageIndex);

#if !defined(__WINS__) && !defined(__WINSCW__)
? ?? ???// Device
? ?? ???CompleteWithAppPath(resFileName);
#else
? ?? ???// Emulator
? ?? ???resFileName.Insert(0, KEmulatorPath);
#endif

? ?? ???if (iOffset) iCoeEnv->DeleteResourceFile(iOffset);
? ?? ???iOffset = iCoeEnv->AddResourceFileL(resFileName);
? ?? ???}

現(xiàn)在你可以調(diào)用 ChooseLanguageL([LanguageIndex]) 函數(shù)來實(shí)現(xiàn)語言的切換了。

修改PKG文件

添加以下幾行到你的打包文件中。
CODE:
"/Symbian/7.0s/Series60_v21/Epoc32/data/z/system/apps/MultiLang/MultiLang.r01"? ?? ?? ?-"!:/system/apps/MultiLang/MultiLang.r01"
"/Symbian/7.0s/Series60_v21/Epoc32/data/z/system/apps/MultiLang/MultiLang.r02"? ?? ?? ?-"!:/system/apps/MultiLang/MultiLang.r02"
"/Symbian/7.0s/Series60_v21/Epoc32/data/z/system/apps/MultiLang/MultiLang.r03"? ?? ?? ?-"!:/system/apps/MultiLang/MultiLang.r03"
"/Symbian/7.0s/Series60_v21/Epoc32/data/z/system/apps/MultiLang/MultiLang_caption.r01" -"!:/system/apps/MultiLang/MultiLang_caption.r01"
"/Symbian/7.0s/Series60_v21/Epoc32/data/z/system/apps/MultiLang/MultiLang_caption.r02" -"!:/system/apps/MultiLang/MultiLang_caption.r02"
"/Symbian/7.0s/Series60_v21/Epoc32/data/z/system/apps/MultiLang/MultiLang_caption.r03" -"!:/system/apps/MultiLang/MultiLang_caption.r03"


如何判斷程序是否被自動(dòng)啟動(dòng)或者被用戶啟動(dòng)

有時(shí)候能夠檢查出在系統(tǒng)啟動(dòng)的時(shí)候哪些應(yīng)用程序被“Startup List Api(只有S60 3rd可以使用)”或者用戶啟動(dòng),和通過“Symbian Signed”,管理啟動(dòng)程序的應(yīng)用是一個(gè)很通用的程序,這篇文章將告訴你如何做到。
首先,你必須修改程序注冊(cè)文件,并在APP_REGISTRATION_INFO資源中添加一些opaque_data字段,內(nèi)容和直并不是那么重要,你只需要按下面的方式指定:
CODE:

#include <appinfo.rh>
#include <uikon.rh>? ?

RESOURCE APP_REGISTRATION_INFO
{
??...
??opaque_data = r_startup_detect;
}? ?? ?

? ?
RESOURCE NUMBER_INT8 r_startup_detect
{
value = 1;
}

當(dāng)應(yīng)用程序運(yùn)行時(shí),opaque_data和其他運(yùn)行參數(shù)將被忽略。因此,判斷是否在運(yùn)行或者不允許(區(qū)分是否應(yīng)用程序被允許在啟動(dòng)的時(shí)候或者被用戶啟動(dòng))。

這樣,你可以重載AppUI中的ProcessCommandParametersL()函數(shù)
T
CODE:

Bool CMyAppUi::ProcessCommandParametersL( CApaCommandLine &aCommandLine )
{
??if(aCommandLine.OpaqueData().Length() > 0)
??{
? ?? ?// Opaque data exists, app. has been manually started from the menu
??}
??else
??{
? ?? ?// App. has been auto-started -> exit if auto-start in settings is OFF
??}
? ?return CEikAppUi::ProcessCommandParametersL( aCommandLine );
}
你也要注意,通過Symbian Signed需要你的應(yīng)用程序有一個(gè)允許禁止自動(dòng)啟動(dòng)的屬性的選項(xiàng)設(shè)置。你需要加入操作代碼來實(shí)現(xiàn)它,在 Forum Nokia Technical Library中描敘得比較好。

這篇文章僅適用于 S60 3RD,接下來的版本也將支持這個(gè)屬性


如何在SYMBIAN60中編寫DLL

Prerequisites
Knowledge of C++ and COM.
Knowledge of Symbian Programming idioms
Introduction
Writing a polymorphic DLL involves the following steps:

Design and write interfaces.
Implement the interface.
Lets explore these in more detail:

Design and write interface consisting of method declarations.
An interface is essentially an abstract class. An example would clarify it:

class ICalculator {public:virtual TInt Sum(TInt, TInt) = 0;};
Above snippet declares a class ICalculator with one method Sum which would take 2 TInt parameters and would return a TInt value. Take a look at the name given to the class. This is done to follow a convention i.e. an interface name should start with an 'I'. Now if one wishes to implement interface ICalculator, he/she has to implement the method Sum.

COM programmers would be wondering that how it can be an interface without a UUID or something like that. Yes! in Symbian too, an interface requires a UUID. While writing an interface this is how UUID is given to it.

static const TUid KCalculator_DLLUID = {0x100039CE};static const TUid KCalculator_DLLUID_Ver1 = {0x0352D96B};class ICalculator {public:virtual TInt Sum(TInt, TInt) = 0;};
Your polymorphic interface is ready. You have to write it in a .h file so that it can be implemented in other .cpp files.

Implement the interface.
Writing a polymorphic DLL is half done when interface declaration is done. Now one would require to implement it. Implementing an interface is as simple as inheriting abstract classes. You have to inherit from an interface and implement pure virtual methods of the interface.

Again an example would help us understand this:

class CImpCalculator: public ICalculator {public:EXPORT_C CImpCalculator* NewImpClass();//function would be exposed through Function tableTInt Sum(TInt num1,TInt num2);};GLDEF_C TInt E32Dll(TDllReason) {return KErrNone;}EXPORT_C CImpCalculator* CImpCalculator::NewImpClass() {return new (ELeave) CImpCalculator;}TInt CImpCalculator::Sum(TInt num1,TInt num2) {return num1 + num2;}
The example above does something more than just implementing the interface. The class CImpCalculator has a method of its own, NewImpClass. This method has a qualifier EXPORT_C. Clearly this is the method which is exposed from the implementation class. In Symbian it is not required to export or expose all the methods from an interface. Only method which needs to be exposed is which returns the object of the interface (or should I say the implementor class?). Rest of the methods can be accessed from function table. The NewImpClass method returns a pointer to the newly created object.

E32Dll method has to be written in every Polymorohic DLL as it is required by the Symbian run time. You would get linking errors in case you forget to write it. This method is responsible to allocate thread local store for the DLL instance.

Now you are ready to compile and build your own DLL. Build it and start using it.

Lastly these DLLs are called polymorphic because one can write many implementations of the same interface. Further all the Symbian GUI applications are Polymorphic DLLs. Check the GUI SDK examples, you will find E32Dll method implemented.

That's all you would require to write a DLL on Symbian!! Note that I have tested the code on NOKIA Series 60 emulator.

定義類的問題

問題:
我使用CAknView定義了一個(gè)View類,
class CCameraAppView : public CAknView.....
并且在這個(gè)類中添加了一個(gè)自定義的CCoeControl的子類成員用來繪圖等。
CCoeControl的子類定義如下:

class CCameraAppBaseContainer : public CCoeControl, MCoeControlObserver, public MAknTabObserver,MConverterController
其中MConverterController是一個(gè)自定義的純虛類,用做接口用。

開始的時(shí)候我是將MConverterController寫在了MAknTabObserver的前面,即寫成了:
class CCameraAppBaseContainer : public CCoeControl, MCoeControlObserver, public MConverterController,MAknTabObserver
這時(shí)候在使用winscw udeb方式編譯的時(shí)候不會(huì)出現(xiàn)任何錯(cuò)誤,但是當(dāng)使用gcce urel方式編譯的時(shí)候卻會(huì)出現(xiàn)如下錯(cuò)誤:
Link Error.rodata+0xf4):undefined reference to 'non-virtual thunk to CCameraAppBaseContainer::TabChangedl(int)'
當(dāng)時(shí)研究了很久也沒弄清楚是怎么回事,后來將MConverterController和MAknTabObserver的順序改過來,就沒有錯(cuò)誤了。

這個(gè)錯(cuò)誤的產(chǎn)生到底是什么原因呢?

解決:
MAknTabObserver 類只有一個(gè)公有的成員函數(shù)TabChangedL(),第一種寫法因?yàn)闆]有寫明從MAknTabObserver的繼承方法,所以是private繼承, 也就是所有的成員函數(shù)是派生類的私有函數(shù),所以外部無法訪問TabChangedL()這個(gè)私有函數(shù).聲明派生類時(shí)明確指出派生方式 (public,private,protected)是一個(gè)好習(xí)慣.


如何才能實(shí)現(xiàn)這個(gè)非同期處理

問:
我要實(shí)現(xiàn)如下3個(gè)函數(shù)處理
GetData(TInt aRequestId) //取得數(shù)據(jù),之后NotifyResult要使用這個(gè)requestID去通知處理結(jié)果
NotifyResult(TInt aRequestId) //通知取得的結(jié)果,這個(gè)requestID要和GetData的相一致
CancelRequest(TInt aRequestId)//根據(jù)requestID取消之前的某個(gè)請(qǐng)求

現(xiàn)在處理流程是這樣的,有很多的請(qǐng)求可以同時(shí)發(fā)出,那么我該如何根據(jù)不同的requestID去實(shí)現(xiàn)Cancel呢?
GetDataA
GetDataB
GetDataC
NotifyResultA
NotifyResultB
NotifyResultC
---------------------------------------------

答:
同時(shí)發(fā)出多個(gè)導(dǎo)步請(qǐng)求需要?jiǎng)?chuàng)建相應(yīng)數(shù)量的活動(dòng)對(duì)象實(shí)例,當(dāng)然也可以創(chuàng)建一個(gè)支持請(qǐng)求隊(duì)列的活動(dòng)對(duì)象來實(shí)現(xiàn)這個(gè)需求。

問:
我起初也想針對(duì)每一個(gè)請(qǐng)求創(chuàng)建一個(gè)活動(dòng)對(duì)象。
不過不清楚用什么異步請(qǐng)求去激發(fā)每個(gè)活動(dòng)對(duì)象。
初步設(shè)想是
class CMsgItem::Public CActive
CMsgItem::RunL
{deal with the request();
NotifyResult();
}

CSample::CreatMsgItem
{
a = New CMsgItem;
//★這里用什么去發(fā)出異步請(qǐng)求呢?原來想用Timer.After,但是覺得不妥。
a.SetActive();
}

后來又打算使用消息隊(duì)列去保存請(qǐng)求,然后在CIdle長線任務(wù)處理中提取msg,去處理。

不過我還是希望用第一種方法去做,
關(guān)于如何發(fā)出異步請(qǐng)求請(qǐng)指點(diǎn)一下,除了timer還能使用別的嗎?
創(chuàng)建出來了這些活動(dòng)對(duì)象,在什么時(shí)機(jī)刪除呢?能否在Runl中調(diào)用"delete this"把自己刪除?
考慮到有可能會(huì)在RunL處理中彈出選擇對(duì)話框,有問題嗎?(考慮到RunL內(nèi)部不能停留太長時(shí)間)
還有有什么需要注意的地方,也請(qǐng)賜教。
-------------------------------------------

答:
活動(dòng)對(duì)象的請(qǐng)求操作接口負(fù)責(zé)發(fā)出異步請(qǐng)并調(diào)用SetActive(),然后在RunL()中調(diào)用通知的函數(shù).這個(gè)通知函數(shù)的接口可以添加一個(gè)活動(dòng)對(duì)象本身的指針做為參數(shù),這樣就可以在接收通知的函數(shù)中區(qū)分出是哪個(gè)活動(dòng)對(duì)象發(fā)出的請(qǐng)求了,就像Listbox的觀察器一樣:
? ?Code:
class MEikListBoxObserver
{
public:
enum TListBoxEvent
{
EEventEnterKeyPressed,
EEventItemClicked,
EEventItemDoubleClicked,
EEventItemActioned, // reported by dir tree and dir contents listboxes
EEventEditingStarted,
EEventEditingStopped,
? ?? ???EEventPenDownOnItem,
? ?? ???EEventItemDraggingActioned
};
public:
virtual void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType)=0;
};


Symbian中的線程、進(jìn)程及同步

全局內(nèi)存塊:跨越多個(gè)進(jìn)程直接訪問的內(nèi)存塊。
創(chuàng)建自己的全局內(nèi)存塊可以通過Rchunk API類
Rchunk chk;
_LIT(KChunkName,"My Globla Chunk");
TInt rc=chk.CreateGlobal(KChunkName,0x1000,0x5000);
其中CreateGlobal()方法第一個(gè)參數(shù)指定全局內(nèi)存塊的名稱。后面兩個(gè)參數(shù)為塊指定分配給它的物理RAM和為塊保留的虛擬內(nèi)存的數(shù)量。
再其他進(jìn)程中要訪問全局內(nèi)存塊可以這樣操作。
Rchunk chk;
_LIT(KChunkName,"My Globla Chunk");
TInt rc=chk.OpenGlobal(KChunkName,0);
TInt *ptr=(TInt *)chk.Base();
可以通過*ptr直接讀寫這塊內(nèi)存。
RChunk::OpenGlobal()第一個(gè)參數(shù)指定了全局內(nèi)存塊的名稱,第二個(gè)參數(shù)用于說明塊是為只讀(1)還是可寫的(0)
可以通過RChunk::Ajust(Tint newsize)方法來擴(kuò)大塊的提交內(nèi)存尺寸。
TInt rc=chk.CreateGlobal(KChunkName,0x1000,0x5000);
例如上面創(chuàng)建了一個(gè)塊,RAM提交給它0x1000字節(jié),塊的最大尺寸是0x5000
在這種情況下,只有用于讀寫的0x1000字節(jié)的物理RAM分配給了塊。但是隨后可以擴(kuò)充該塊,例如:
chk.Ajust(0x3000)
現(xiàn)在塊被分配了0x3000字節(jié)的內(nèi)存。

信號(hào)量:
全局信號(hào)量:
創(chuàng)建全局信號(hào)量
RSemphore::CreateGlobal(const TDesc &aname,TInt aCount,TOwnerType aType=EOwnerProcess);
第一個(gè)參數(shù)是信號(hào)量的名稱,第二個(gè)參數(shù)是信號(hào)量的標(biāo)記計(jì)數(shù)。
第三個(gè)參數(shù)指定句柄的所有權(quán)。
EOwnerProcess標(biāo)記該信號(hào)量句柄可以在進(jìn)程的任何位置進(jìn)行訪問。
EOwnerThread表示它只能被創(chuàng)建的線程訪問。
打開全局信號(hào)量
RSemphore::OpenGlobal(const TDesc &aname,TOwnerType aType=EOwnerProcess);或者
RSemphore::Open(const TFindSemphore& aFind,TOwnerType aType=EOwnerProcess);
第一個(gè)函數(shù)通過信號(hào)量全名打開它。
第二個(gè)函數(shù)使用TFindSemphore類,通過包含通配符字符的部分名稱打開它。
例如_LIT(KMatchName,"MySemphore*");
TFindSemphore semName(KMatchName);
RSemphore::Open(semName)
打開一個(gè)全局的信號(hào)量。
RSemphore::Signal()給信號(hào)量的標(biāo)記數(shù)加1
RSemphore::Wait()給信號(hào)量的標(biāo)記數(shù)減1
如果Wait()發(fā)現(xiàn)減后的標(biāo)記數(shù)為負(fù)值,則Wait()阻塞,直到調(diào)用Signal()增加標(biāo)記計(jì)數(shù)才返回。

(1)使用信號(hào)量可以做為一個(gè)直接信號(hào),控制不同進(jìn)程之間執(zhí)行的流程。
(2)信號(hào)量也可以用來保護(hù)共享資源。
本地信號(hào)量:
創(chuàng)建本地信號(hào)量
TInt CreateLocal(Tint aTokenCount,TOwnerType aType=EOwnerProcess);
本地信號(hào)量沒有名字,不需要打開,通過創(chuàng)建它的RSemphore,就可以簡單地訪問它。
注意,如果把a(bǔ)Type指定為EOwnerThread,但又想在另外一個(gè)線程中使用信號(hào)量,那么,就必須使用Duplicate()方法,為該線程創(chuàng)建句柄的副本。可以查看SDK文檔中的RHandleBase::Duplicate()

symbian中的幾個(gè)API

1. 定位當(dāng)前程序,并將當(dāng)前程序的優(yōu)先級(jí)調(diào)高

TInt prio = 1001; //設(shè)置一個(gè)較高的值

//將當(dāng)前程序的窗口組設(shè)計(jì)一個(gè)高的優(yōu)先級(jí),并置為同級(jí)最前
CEikonEnv::Static()->RootWin().SetOrdinalPosition(0, prio);

2.將當(dāng)前程序的窗口組設(shè)置為最前, 可與HandleForegroundEventL 配合使用,使當(dāng)前程序使終處于最前(條件是優(yōu)先級(jí)要有足夠高,否則的話還是會(huì)被優(yōu)先級(jí)更高的程序搶占)

RWsSession ws = CEikonEnv::Static()->WsSession();
TApaTaskList tlist(ws);
TApaTask task = tlist.FindApp(KUidMyApp);??//KUidMyApp 是指要調(diào)高優(yōu)先級(jí)的程序的ID
task.BringToForeground();

或者是:

TApaTaskList taskList(CCoeEnv::Static()->WsSession());
TApaTask currentTask = taskList.FindByPos(0);
TApaTask ourAppTask = taskList.FindApp(KUidNightClockApp);
if(currentTask.ThreadId() != ourAppTask.ThreadId())
??ourAppTask.BringToForeground();

3.模擬一個(gè)按鍵消息,并發(fā)向指定窗口組

RWsSession sess=CCoeEnv::Static()->WsSession();
TWsEvent event;
TInt id=sess.FindWindowGroupIdentifier( 0, _L("*Phone?") ); //取得電話程序的窗口組

event.SetType(EEventKey);
event.SetTimeNow();
event.Key()->iCode = EKeyDownArrow; //模擬一個(gè)向下的箭頭按鍵
event.Key()->iModifiers = 0;
event.Key()->iRepeats = 0;
event.Key()->iScanCode = EStdKeyNull;
sess.SendEventToWindowGroup( id, event ); 將模擬的按鍵消息發(fā)給窗口組

給pys60以不同的屏幕顯示方式

如下就可以做到,我喜歡用全屏,嘿嘿
首先記得要裝入appuifw模塊

>>>import appuifw

然后可以選擇你想要的顯示方式

>>>appuifw.app.screen='normal' #(a normal screen with title pane and softkeys)
>>>appuifw.app.screen='large' #(only softkeys visible)
>>>appuifw.app.screen='full' #(a full screen)


Symbian平臺(tái)編碼問題

自己在開發(fā)時(shí)遇到的一些問題:<!--[if !vml]-->

1.??<!--[endif]-->將Symbian應(yīng)用程序改為中文名稱
? ? ? 修改資源文件xxx_caption.rss:
? ?? ???Code:
#include “xxx.loc”
RESOURCE CAPTION_DATA
...{
? ? caption = qtn_app_caption_string;
? ? shortcaption = qtn_app_short_caption_string;
}
? ? ? 打開xxx.loc 用記事本或UltraEdit轉(zhuǎn)成UTF-8編碼
? ?? ???Code:
CHARACTER_SET UTF8? ? //必須加這行

#define qtn_app_caption_string “程序中文名”
#define qtn_app_short_caption_string “顯示名”

2.在Nokia 7610中文機(jī)上顯示Shift-JIS編碼的日文串
? ? ? Symbian平臺(tái)以Unicode編碼,可以表示、顯示所有字符,只需將本地編碼轉(zhuǎn)為Unicode即可。
? ?? 因?yàn)橹形臋C(jī)上沒有日文字庫,所以不能用類CcnvCharacterSetConverter提供的方法
? ???(但可實(shí)現(xiàn)GBK -> Unicode)
? ? Code:
CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC();
converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, CEikonEnv::Static()->FsSession());
/***************************************************
*上一行會(huì)異常退出,因目標(biāo)平臺(tái)沒有SJIS字庫
*但可以實(shí)現(xiàn)GBK -> Unicode,只需將KcharacterSetIdentifierShiftJis
*改為KCharacterSetIdentifierGbk
***************************************************/
TInt state = CCnvCharacterSetConverter::KStateDefault;
……
TInt ctu = converter->ConvertToUnicode(bufPtr, srcPtr, state);
? 在網(wǎng)上找了一個(gè)實(shí)現(xiàn)SJIS到Unicode轉(zhuǎn)換的函數(shù)
? ? Code: #include "cp.h"

#define is_zen(c)
? ?? ???((0x81 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0x9f)
? ?? ???|| (0xe0 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xfc))
#define is_han(c)
? ?? ???((0xa0 <= ((unsigned char) (c)) && ((unsigned char) (c)) <= 0xdf))

s32_t skip_bytes(char c)
{
??if(is_zen(c)) {
? ? return 2;
??} else if (is_han(c)) {
? ? return 1;
??}
??return 0;
}

s32_t jis2utf8(char **srcbuf, s32_t *srclen, char **outbuf, s32_t *outlen) {
??unsigned char *dst;
??unsigned char *src;
??unsigned short utf8code;
??int sjiscode;
??s32_t??len;
??unsigned char *to2;

??if (! (srcbuf && srclen && outbuf && outlen))
? ? return 0;

??src = (unsigned char *)*srcbuf;
??dst = to2 = (u8_t*)malloc(*outlen);
??while (*src && ((dst - to2) < (*outlen - 4))) {
? ? len = skip_bytes(*src);
? ? if ( len == 2 ) {
? ?? ?sjiscode = (int)(*src++ & 0xff);
? ?? ?sjiscode = (int)((sjiscode << 8)|(*src++ & 0xff));
? ? } else {
? ?? ?sjiscode = (int)(*src++ & 0xff);
? ? }

utf8code = cp[sjiscode];// convert sjis code to utf8 (cp[] is conversion table array)

? ? if ( utf8code <= 0x7f ) {
? ?? ?*dst++ = (char)(utf8code & 0xff);
? ? }
? ?else if ( utf8code <= 0x7ff ){
? ?? ?*dst++ = (char)( 0xc0 | ((utf8code >> 6) & 0xff));
? ?? ?*dst++ = (char)( 0x80 | ( utf8code & 0x3f ));
? ? } else {
? ?? ?*dst++ = (char)( 0xe0 | ((utf8code >> 12) & 0x0f));
? ?? ?*dst++ = (char)( 0x80 | ((utf8code >> 6)??& 0x3f));
? ?? ?*dst++ = (char)( 0x80 | (utf8code & 0x3f));
? ? }

??}
??*dst++='';
??memcpy(*outbuf,to2,*outlen);
??free(to2);
??return strlen(*outbuf);
}
<!--[endif]-->


symbian代碼編寫方面的提醒

給自己在symbian代碼編寫方面的提醒:

(1)在控件環(huán)境下進(jìn)行文件操作,建議不要連接文件服務(wù)器,而應(yīng)該直接利用 CEikonEnv::FsSession()這樣省去了連接文件服務(wù)器的開銷;

(2)常量的判斷語句,常量應(yīng)該放在==的左邊,這樣的好處是萬一程序員誤將==寫成=也可以檢查出來,因?yàn)槌A坎荒鼙毁x值的;

(3)在程序中要善于運(yùn)用條件編譯,使得同樣的一份代碼可以適應(yīng)模擬器調(diào)試和真機(jī)的運(yùn)行;


(4)提醒自己寫函數(shù)時(shí)要注意考慮函數(shù)退出的問題,含可能退出代碼的函數(shù),函數(shù)名應(yīng)以L結(jié)尾。


如何顯示s60 3rd中文菜單

sword 222??問:

1。如何在真機(jī)中顯示中文菜單啊?
我在.rss文件中,寫上CHARACTER_SET UTF8
將rls文件存儲(chǔ)成u8-dos格式。編譯GCCE過不了,說我文件有非法字符。
2.在模擬器上如何顯示中文?
我的sdk是s60 3.0 maint的。用的是vs.net2003+carbide 2.1

beover1984 答:
最好使用EditPlus把文件轉(zhuǎn)換成UTF-8編碼

sword 222??問:
我用UE轉(zhuǎn)成的就是UTF8啊。編譯不過。郁悶中。
提示非法字符如下:
..//data//HotelAd.rls(1) : *** Unknown character '? (value 0xffffffef)
..//data//HotelAd.rls(1) : *** Unknown character '? (value 0xffffffbb)
..//data//HotelAd.rls(1) : *** Unknown character '? (value 0xffffffbf)
還有其他可能不對(duì)嗎?
60 2.0版本的我用UE轉(zhuǎn)換是對(duì)的。極度郁悶中。謝謝beover1984的回復(fù)。

beover1984 答:

用UE轉(zhuǎn)換的在3.0上可能也存在問題,我換成EditPlus就好了.

sword 222??問:
用edit plus轉(zhuǎn)換成utf8編譯通過。
謝謝beover1984的回復(fù)。
我用EPlus轉(zhuǎn)換,可以編譯了,但是,真機(jī)上運(yùn)行不了,顯示系統(tǒng)錯(cuò)誤。我自簽名,只用了ReadUserData能力。在亂碼的時(shí)候,我還是可以在真機(jī)上使用的。在模擬器上可以運(yùn)行,但是依舊是亂碼。有沒有模擬器顯示中文的辦法?

beover1984 答:

執(zhí)行abld reallyclean清理一下工程,然后重新生成一下.

cdutly 答:
如 果你用UE的話,那么在"高級(jí)--配置"中將"當(dāng)保存時(shí)寫入U(xiǎn)TF-8 BOM頭到所有UTF-8文件"去掉,再去掉"自動(dòng)檢測UTF-8". 設(shè)置好以后重新打開loc文件,你會(huì)發(fā)現(xiàn)在文件頭部會(huì)有一些亂碼字符,刪掉. 但如果你的loc是中文的話,中文將會(huì)變成很奇怪的字,不要擔(dān)心,再將"自 動(dòng)檢測UTF-8"選種然后重新打開loc及可,試試看.


如何選擇編輯器中的一段文本

問題:
比如一個(gè)用來顯示聊天記錄的編輯器,通過上下鍵需要能每次選中一段文本進(jìn)行復(fù)制或其它操作,請(qǐng)問要如何實(shí)現(xiàn)呢?

解決:

CEikEdwin::SetSelectionL()
void SetSelectionL(TInt aCursorPos, TInt aAnchorPos);
Description
Sets the text selection. Highlights the selected area and makes the new cursor position visible. Any previous selection is cancelled. This function also updates the scroll bar thumbs if present.


用什么函數(shù)來獲得當(dāng)前剩余堆內(nèi)存

問題:
現(xiàn)在的問題就是要檢測系統(tǒng)的內(nèi)存容量,當(dāng)內(nèi)存的剩余量達(dá)到一個(gè)臨界值的時(shí)候做出相應(yīng)處理。可是找不到什么辦法。搜了站內(nèi)的帖子,找到一個(gè)說是Available()可以實(shí)現(xiàn)的,但是我不能通過SDK help解決問題,最好有高人給個(gè)代碼片斷。

解決:

下面的代碼可以得到可用內(nèi)存的數(shù)量。
Code:
TMemoryInfoV1Buf info;

UserHal::MemoryInfo(info);

TInt freeMemory = info().iFreeRamInBytes;


如何對(duì)描述符讀寫數(shù)值型數(shù)據(jù)

saintrui :
TInt num = 123456;
TBuf8<64> buf;
buf.AppendNum(num);

上 面的代碼把TInt型的數(shù)字num存在描述符里后,buf中就有6個(gè)字節(jié)的數(shù)據(jù)了,每個(gè)字節(jié)分別是num中的一個(gè)數(shù)字,本來TInt是占4個(gè)字節(jié)的,我想 讓描述符用4個(gè)字節(jié)存儲(chǔ)這個(gè)num,即按num的4個(gè)字節(jié)不變地儲(chǔ)存在buf的四個(gè)字節(jié)中,而不是6個(gè)字節(jié),該如何做?

上面的問題是我在寫socket通信中碰到的,還有個(gè)問題,假如pc服務(wù)器上發(fā)送過來的數(shù)據(jù)中有個(gè)數(shù)字123456,那么手機(jī)接收后存在TBuf8的描述符中,我想把這個(gè)數(shù)字從該描述符中讀到一個(gè)TInt變量里,該怎樣讀呢?

saintrui :

解決了,symbian中不提供這樣的函數(shù),只好自己轉(zhuǎn)換。太依賴symbian了,c++的類型轉(zhuǎn)換都差點(diǎn)忘了。
把a(bǔ)的二進(jìn)制值寫到描述符中:
TInt a =123456;
TUint8* ch = (TUint8*)(&a);
TBuf8<20> buf;
buf.Append(ch,4);

從描述符中讀取二進(jìn)制TInt值:
TUint8* p = &(buf[0]);
TInt* b = (TInt*)(p);

ch2000pro:

從描述符讀出來可以這樣做:
TLex iLex(iBuf);
TInt iNum2;
iLex.Val(iNum2);

SymbianLn:
樓住的最初的做法
AppendNum就是把數(shù)字轉(zhuǎn)換成字符串存儲(chǔ),所以就變成了6個(gè)字符。
讓描述符直接指向存儲(chǔ)地址,就可以了。
因?yàn)橹羔樏枋龇饶苤赶蜃址?#xff0c;也能指向內(nèi)存地址。
可以使用TPtr8等等。


在程序啟動(dòng)后先彈出確定使用文字頁面,然后確定后繼續(xù)運(yùn)行

windnoway? 問:
---------------------------------------------------------------
我們的程序做好了
但是我想在程序剛啟動(dòng)的時(shí)候
彈出一個(gè)文字頁面“歡迎使用授權(quán)軟件”,點(diǎn)擊同意后再繼續(xù)啟動(dòng)程序
怎么來做到程序還沒有啟動(dòng)的時(shí)候顯示呢?
用甚么函數(shù)寫在甚么地方 給個(gè)例子看看?
-----------------------------------------------------------------

beover1984?? 回答:
---------------------------------------------------------------------
Code:

HBufC *header = StringLoader::LoadLC( R_ABOUT_HEADER, iCoeEnv );
HBufC *body = StringLoader::LoadLC( R_ABOUT_TEXT, iCoeEnv );

CAknMessageQueryDialog *dlg = CAknMessageQueryDialog::NewL( *body );

dlg->PrepareLC( R_AVKON_MESSAGE_QUERY_DIALOG );
dlg->SetHeaderTextL( *header );

dlg->RunLD();

CleanupStack::PopAndDestroy( 2, header );

上面的代碼可以彈出一個(gè)帶"確定"和"取消"的對(duì)話框,在UI的ConstructL()中判斷dlg->RunLD();的返回值就可以了.
--------------------------------------------------------------------------------------------

windnoway? 問:
------------------------------------------------------------------------------------------
兄弟您看一下是否正確
我在**appui.cpp中加入


#include<avkon.rsg> //for R_AVKON_MESSAGE_QUERY_DIALOG

_LIT(R_ABOUT_HEADER,"message");
_LIT(R_ABOUT_TEXT,"Copyright 2006 SE");

HBufC *header = StringLoader::LoadLC( R_ABOUT_HEADER, iCoeEnv );
HBufC *body = StringLoader::LoadLC( R_ABOUT_TEXT, iCoeEnv );

CAknMessageQueryDialog *dlg = CAknMessageQueryDialog::NewL( *body );

dlg->PrepareLC( R_AVKON_MESSAGE_QUERY_DIALOG );
dlg->SetHeaderTextL( *header );

dlg->RunLD();

CleanupStack::PopAndDestroy( 2, header );

void CFreeJoyAppUi::ConstructL()
{
BaseConstructL();
if (dlg->RunLD())
{
//這里就寫明啟動(dòng)的時(shí)候啟動(dòng)的程序了
}
}


//兄弟這樣寫沒有錯(cuò)誤吧
-------------------------------------------------------------------------------------------------------

beover1984?? 回答:
----------------------------------------------------------------------------------------------------
Code:

.......

if( !dlg->RunLD() )? //選擇"取消"退出程序
{
??? Exit();
}


VC中的CString類,在symbian中用什么解決

問題:
在VC中的CString類,可以用什么代替呢?請(qǐng)大家指教

解決:

Symbian平臺(tái)上提供了描述符用于處理字符串,其中HBufC是在heap上創(chuàng)建的,并且提供了ReAlloc()用于重新分配空間,但是不會(huì)像CString那樣在空間不夠時(shí)自動(dòng)分配,需要自己做處理.


關(guān)于在手機(jī)上安裝的問題

問題:
我用自己的SIS文件在手機(jī)上安裝之后,只出現(xiàn)圖標(biāo),但是老是打不開程序,請(qǐng)問是什么原因。
我的SIS文件是在C:/Symbian/8.0a/S60_2nd_FP2_SC/epoc32/tools下創(chuàng)建的,為什么在其他目錄下用不了makesis的? 老是提示出錯(cuò)。

解決:

把 C:/Symbian/8.0a/S60_2nd_FP2_SC/epoc32/tools這個(gè)路徑加到環(huán)境變量path中,然后重啟一下就能在任意目錄 使用makesis了,程序不能在真機(jī)上啟動(dòng)很可能是打包時(shí)少打了一些資源文件引起的,建議檢查一下PKG文件,或者編譯打包一個(gè)例子試一下.


不通過rss文件,程序手動(dòng)構(gòu)建CEikEdwin的問題

問題:
我不想用rss來構(gòu)建CEikEdwin,因?yàn)镃EikEdwin會(huì)經(jīng)常改變輸入限制。所以考程序來設(shè)置比較好。
但我一個(gè)只讓輸入英文的輸入框構(gòu)建如下:
iPSEdwin = new (ELeave) CEikEdwin;
iPSEdwin->SetContainerWindowL(*this);
iPSEdwin->ConstructL(EAknEditorFlagDefault,16,16,1);
iPSEdwin->SetInputCapabilitiesL(TCoeInputCapabilities::EWesternAlphabetic );

可運(yùn)行后發(fā)現(xiàn),只能輸入數(shù)字,右上腳的輸入法提示也沒有了。
但另外一個(gè)只讓輸入數(shù)字的輸入框構(gòu)建如下:
iIDEdwin = new (ELeave) CEikEdwin;
iIDEdwin->SetContainerWindowL(*this);
iIDEdwin->ConstructL(EAknEditorFlagDefault,16,16,1);
iIDEdwin->SetInputCapabilitiesL(TCoeInputCapabilities::EWesternNumericIntegerPositive);
這就是正常的,只有數(shù)字輸入,右上角的輸入法提示也是正確的。

我該如何設(shè)置CEikEdwin的輸入限制,不通過rss來構(gòu)建

解決:
可以使用下面的代碼實(shí)現(xiàn)只能輸入字母的限制:

Code:

iPSEdwin = new (ELeave) CEikEdwin;
iPSEdwin->SetContainerWindowL(*this);
iPSEdwin->ConstructL(EAknEditorFlagDefault,16,16,1);
iPSEdwin->SetAknEditorFlags(EAknEditorFlagLatinInputModesOnly);

壓縮SVG文件

我們可以在S60第二版,FP3的SDK中通過SVGTBINENCODE.EXE程序來對(duì)Scalable Vector Graphics(SVG)圖形文件進(jìn)行二進(jìn)制編碼和壓縮。
SVGTBINENCODE的使用方法為:
1、備份你的.svg文件——你將使用一個(gè)不可編輯的壓縮版本覆蓋原來的那個(gè)。
2、對(duì).svg文件在模擬器目錄中進(jìn)行拷貝。如%EPOCROOT%/epoc32/winscw/c/system/temp/
3、在命令行方式下,運(yùn)行svgtbinencode壓縮程序。

cd %EPOCROOT%/epoc32/release/winscw/udeb svgtbinencode -Dnogui -- c:/system/temp/sourceimage.svg

這將在同樣目錄下生成一個(gè)二進(jìn)制編碼版本的SVG圖形文件,其擴(kuò)展名為.svgb

將這個(gè).svgb文件拷貝到原來.svg文件所在位置。
刪除老的.SVG文件,因?yàn)槟銓⒁脡嚎s版本去替代它。
將這個(gè).svgb文件重命名為.svg擴(kuò)展名。
運(yùn)行MifConv.exe程序來生成一個(gè)multi-icon文件(.MIF),如果使用擴(kuò)展過的makefile(icons.mk),那這些在編譯過程中會(huì)自動(dòng)完成。
注意,MifConv無法識(shí)別.svgb擴(kuò)展名,如果你沒將其改名為.svg擴(kuò)展名那它將無法識(shí)別接收這個(gè)二進(jìn)制編碼的SVG文件。


調(diào)用掛機(jī)鍵時(shí)行為發(fā)生變化

標(biāo)題: 調(diào)用掛機(jī)鍵時(shí)行為發(fā)生變化

設(shè)備, 軟件 版本: S60 2nd Edition, Feature Pack 3? S60 3rd Edition

說明:
從S60第二版,FP3開始向后,按下掛機(jī)鍵將導(dǎo)致程序關(guān)閉。

詳細(xì)描述:
在早期S60設(shè)備上,當(dāng)我們按下掛機(jī)鍵時(shí)(就是紅色的end鍵),當(dāng)前程序?qū)?huì)切換到后臺(tái)而不會(huì)被關(guān)閉。但從S60第二版,FP3開始,當(dāng)我們按下掛機(jī)鍵時(shí)將導(dǎo)致當(dāng)前運(yùn)行的程序關(guān)閉。

情景重現(xiàn):
運(yùn)行一個(gè)第三方程序,按下掛機(jī)鍵,程序?qū)?huì)被關(guān)閉,設(shè)備會(huì)切換到主畫面。

解決方案:
這是一個(gè)改進(jìn)的特性,因此無法饒過掛機(jī)鍵操作所引發(fā)的行為。如果需要切換程序時(shí),終端用戶應(yīng)該使用菜單鍵去處理以避免掛機(jī)鍵導(dǎo)致程序的關(guān)閉。通過按1到2次菜單鍵來切換程序或返回待機(jī)畫面。


在異常發(fā)生后音頻流處于不穩(wěn)定狀態(tài)

標(biāo)題: 在異常發(fā)生后音頻流處于不穩(wěn)定狀態(tài)

設(shè)備, 軟件 版本: S60 2nd Edition, FP1, FP2, and FP3

說明:
如果程序因?yàn)楫惓6K止了音頻播放,那重新打開它的話將會(huì)引發(fā)錯(cuò)誤。

詳細(xì)描述:
如果程序因?yàn)橐粋€(gè)音頻流操作(使用CMdaAudioOutputStream或CMMFDevSound對(duì)象打開或運(yùn)行)引起中斷并終止運(yùn)行,那如果再次試圖使用如CMdaAudioOutputStream::OpenL去打開它時(shí)就會(huì)引發(fā)錯(cuò)誤。
如果想要成功再次打開那個(gè)音頻流,我們需要將設(shè)備重新啟動(dòng)。

情景重現(xiàn):
在音頻流播放出現(xiàn)異常中斷后,嘗試去調(diào)用CMdaAudioOutputStream::OpenL(),將無法得到返回,程序因此會(huì)掛起。


當(dāng)鍵盤鎖定被取消時(shí)可能會(huì)導(dǎo)致無意中將程序切換到后臺(tái)

標(biāo)題: 當(dāng)鍵盤鎖定被取消時(shí)可能會(huì)導(dǎo)致無意中將程序切換到后臺(tái)

設(shè)備, 軟件 版本: S60 2nd Edition, FP2, Nokia 6630, Nokia 6680
S60 2nd Edition, FP3, N70, N90

說明:
當(dāng)使用CAknAppUi::SetKeyBlockMode()取消鍵盤鎖定功能時(shí),一些按鍵的組合可能會(huì)導(dǎo)致程序被切換到后臺(tái)。

詳細(xì)描述:
大部分S60游戲都會(huì)將鍵鎖定模式取消,以便多鍵同時(shí)按下時(shí)不影響游戲。這可以通過調(diào)用應(yīng)用程序UI(CAknAppUi)來完成:
SetKeyBlockMode(ENoKeyBlock)

在S60第二版FP2或更新的版本中,如果為鍵盤鎖定模式取消狀態(tài),那下列按鍵組合被同時(shí)按下會(huì)導(dǎo)致程序被切換到后臺(tái):
‘7’ + ‘8’ + ‘0’ + ‘*’
‘9’ + ‘0’ + ‘#’

解決方案:
目前沒有好的解決方案,游戲設(shè)計(jì)中應(yīng)該避免用戶偶然按下上述按鍵組合。


導(dǎo)入工程到IDE時(shí)圖象資源無法生成

標(biāo)題: 導(dǎo)入工程到IDE時(shí)圖象資源可能無法生成

設(shè)備, 軟件 版本: S60 2nd Edition, FP3,S60 3rd Edition

說明:
當(dāng)我們將一個(gè)Symbian應(yīng)用程序工程導(dǎo)入到IDE時(shí)(如MetroWorks CodeWarrior或Microsoft Visual Studio),試圖編譯它,但bitmap資源會(huì)無法生成。

詳細(xì)描述:
在 S60第三版上,multi-image文件(.mbm或.mif)以及相關(guān)的image header files(.mbg)是通過mifconv圖象轉(zhuǎn)換工具生成的。是bld.inf中通過一個(gè)擴(kuò)展的makefile來完成的,這個(gè)方法在S60 2nd Edition, Feature Pack 3.就開始被支持。
這些擴(kuò)展的makefile不會(huì)在IDE中隨著工程的編譯而被執(zhí)行,因此圖片文件和頭文件將不會(huì)在編譯時(shí)自動(dòng)產(chǎn)生,通常這就導(dǎo)致工程因?yàn)槿鄙?mbg文件而失敗。

解決方案:
我們可以通過abld命令去生成這些圖片資源,到/group目錄下,輸入
bldmake bldefiles
abld resource
在此后,工程就能被順利導(dǎo)入IDE并被編譯,注意如果圖片資源(source bitmaps或SVG images)被修改了,那這個(gè)過程還要重復(fù)做一次。
? 轉(zhuǎn)自:http://www.cppblog.com/khan/archive/2007/06/18/26572.html

總結(jié)

以上是生活随笔為你收集整理的Symbian开发——Symbian开发知识(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

内射欧美老妇wbb | 日韩成人一区二区三区在线观看 | 亚洲一区二区观看播放 | www国产亚洲精品久久久日本 | 欧美兽交xxxx×视频 | 久久无码专区国产精品s | 精品熟女少妇av免费观看 | 成人性做爰aaa片免费看不忠 | 内射白嫩少妇超碰 | 国产一区二区三区影院 | 成人三级无码视频在线观看 | 清纯唯美经典一区二区 | 桃花色综合影院 | 天天拍夜夜添久久精品大 | 亚洲日本一区二区三区在线 | 婷婷综合久久中文字幕蜜桃三电影 | 精品国产一区二区三区av 性色 | 久久久久人妻一区精品色欧美 | 国产婷婷色一区二区三区在线 | 在线观看欧美一区二区三区 | 亚洲一区av无码专区在线观看 | 东京一本一道一二三区 | 成 人影片 免费观看 | 狂野欧美性猛交免费视频 | 久久视频在线观看精品 | 亚洲男人av香蕉爽爽爽爽 | 免费播放一区二区三区 | 999久久久国产精品消防器材 | 日本护士毛茸茸高潮 | 人人澡人摸人人添 | 久久国产精品萌白酱免费 | 久久精品人人做人人综合 | 老太婆性杂交欧美肥老太 | 国产真人无遮挡作爱免费视频 | 国产亚洲精品精品国产亚洲综合 | 亚洲国产欧美在线成人 | 天海翼激烈高潮到腰振不止 | 51国偷自产一区二区三区 | 丰满人妻一区二区三区免费视频 | 成年女人永久免费看片 | 国产精品久久久久久无码 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产成人无码午夜视频在线观看 | 国产精品毛片一区二区 | 国内少妇偷人精品视频 | 亚洲熟悉妇女xxx妇女av | 亚洲欧美日韩国产精品一区二区 | 丰满人妻精品国产99aⅴ | 久久久中文字幕日本无吗 | 久久午夜夜伦鲁鲁片无码免费 | 国产特级毛片aaaaaa高潮流水 | 高清国产亚洲精品自在久久 | 国产无套内射久久久国产 | 久久精品国产一区二区三区 | 亚洲人成网站免费播放 | 天天摸天天透天天添 | 成熟人妻av无码专区 | 97人妻精品一区二区三区 | 美女扒开屁股让男人桶 | 亚洲一区二区三区四区 | 丰满少妇人妻久久久久久 | 亚洲精品一区二区三区在线 | 久久精品一区二区三区四区 | 午夜福利一区二区三区在线观看 | √8天堂资源地址中文在线 | 亚洲国精产品一二二线 | 欧美老妇交乱视频在线观看 | 日韩精品无码一区二区中文字幕 | 少妇激情av一区二区 | 亚洲精品久久久久久久久久久 | 精品国产av色一区二区深夜久久 | 精品国产精品久久一区免费式 | 鲁大师影院在线观看 | 97夜夜澡人人爽人人喊中国片 | 久久这里只有精品视频9 | 18精品久久久无码午夜福利 | 色偷偷人人澡人人爽人人模 | av无码电影一区二区三区 | 国模大胆一区二区三区 | 欧美日本精品一区二区三区 | 日日摸日日碰夜夜爽av | 欧美三级不卡在线观看 | 久久亚洲精品中文字幕无男同 | 亚洲成在人网站无码天堂 | 欧美日韩视频无码一区二区三 | 国产在线精品一区二区三区直播 | 日本在线高清不卡免费播放 | 天堂一区人妻无码 | 亚洲国产午夜精品理论片 | 日韩亚洲欧美精品综合 | av人摸人人人澡人人超碰下载 | 久久亚洲精品中文字幕无男同 | 久久精品人妻少妇一区二区三区 | 爽爽影院免费观看 | 无套内谢的新婚少妇国语播放 | 老司机亚洲精品影院无码 | 精品国产一区av天美传媒 | 久青草影院在线观看国产 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲欧美日韩国产精品一区二区 | 国产精品无码久久av | 国产激情一区二区三区 | 偷窥日本少妇撒尿chinese | 日日麻批免费40分钟无码 | 婷婷五月综合缴情在线视频 | 欧美日韩亚洲国产精品 | 少妇被粗大的猛进出69影院 | 国产午夜无码视频在线观看 | 亚洲热妇无码av在线播放 | 欧洲精品码一区二区三区免费看 | 最近中文2019字幕第二页 | 综合激情五月综合激情五月激情1 | 精品国产成人一区二区三区 | 国产精品无码一区二区桃花视频 | 久久久国产一区二区三区 | 少妇性l交大片欧洲热妇乱xxx | 精品久久8x国产免费观看 | 国产精品久久久久9999小说 | 一区二区传媒有限公司 | 国产手机在线αⅴ片无码观看 | 亚洲精品一区二区三区在线 | 中文字幕人成乱码熟女app | 麻豆国产丝袜白领秘书在线观看 | 欧美国产日韩久久mv | 中文字幕av无码一区二区三区电影 | 午夜无码人妻av大片色欲 | 天干天干啦夜天干天2017 | www国产亚洲精品久久网站 | 丝袜 中出 制服 人妻 美腿 | 亚洲精品一区二区三区在线观看 | 精品久久久久久人妻无码中文字幕 | 男女性色大片免费网站 | 国产亚洲人成在线播放 | 国产精品福利视频导航 | 天干天干啦夜天干天2017 | 欧美喷潮久久久xxxxx | 国产亚洲欧美在线专区 | 亚洲国产成人av在线观看 | 精品人妻中文字幕有码在线 | 夜夜影院未满十八勿进 | 乱人伦中文视频在线观看 | 性开放的女人aaa片 | 久久综合激激的五月天 | 少妇性l交大片欧洲热妇乱xxx | 在线 国产 欧美 亚洲 天堂 | 亚洲国产av精品一区二区蜜芽 | 美女极度色诱视频国产 | 在线观看免费人成视频 | 国产精品18久久久久久麻辣 | 亚洲精品一区二区三区四区五区 | 欧美 日韩 亚洲 在线 | 国产精品毛多多水多 | 国产明星裸体无码xxxx视频 | 成人亚洲精品久久久久 | 国产成人无码av一区二区 | 99久久无码一区人妻 | 国产麻豆精品一区二区三区v视界 | 亚洲一区二区三区香蕉 | 亚洲人成无码网www | 国产成人精品优优av | 亚洲码国产精品高潮在线 | 乌克兰少妇xxxx做受 | 久久99精品国产麻豆 | 亚洲另类伦春色综合小说 | 澳门永久av免费网站 | 亚洲欧美国产精品久久 | 亚洲国产一区二区三区在线观看 | 少妇邻居内射在线 | 久久综合九色综合欧美狠狠 | 精品亚洲成av人在线观看 | 欧美三级a做爰在线观看 | 亚洲性无码av中文字幕 | 色五月五月丁香亚洲综合网 | 日韩精品一区二区av在线 | 高清无码午夜福利视频 | 正在播放老肥熟妇露脸 | 久久精品国产99精品亚洲 | 99久久精品午夜一区二区 | 99久久精品无码一区二区毛片 | 国产精品无码一区二区三区不卡 | 欧美三级a做爰在线观看 | 国产xxx69麻豆国语对白 | 国产精品国产三级国产专播 | 帮老师解开蕾丝奶罩吸乳网站 | av无码不卡在线观看免费 | 欧美日韩一区二区免费视频 | 漂亮人妻洗澡被公强 日日躁 | 国产人成高清在线视频99最全资源 | 少妇激情av一区二区 | 国产国语老龄妇女a片 | 奇米影视7777久久精品人人爽 | 亚洲一区二区三区播放 | 国产乱人伦偷精品视频 | 国产精品人妻一区二区三区四 | 国内揄拍国内精品少妇国语 | 亚洲国产精品久久久久久 | 一本大道伊人av久久综合 | 波多野结衣一区二区三区av免费 | 无码精品人妻一区二区三区av | 久久99国产综合精品 | 麻花豆传媒剧国产免费mv在线 | 国产激情综合五月久久 | 国产一区二区三区精品视频 | 成人av无码一区二区三区 | 久久久久国色av免费观看性色 | 人人妻人人澡人人爽欧美一区九九 | 性欧美大战久久久久久久 | 色综合久久久久综合一本到桃花网 | 国产人妖乱国产精品人妖 | 4hu四虎永久在线观看 | 欧美人与禽zoz0性伦交 | 精品国产成人一区二区三区 | 亚洲国产av精品一区二区蜜芽 | 人人爽人人澡人人人妻 | 97精品国产97久久久久久免费 | 亚洲日本在线电影 | 色情久久久av熟女人妻网站 | 久精品国产欧美亚洲色aⅴ大片 | 中文精品无码中文字幕无码专区 | 亚洲第一网站男人都懂 | 天堂在线观看www | 无码乱肉视频免费大全合集 | 久久精品一区二区三区四区 | 51国偷自产一区二区三区 | 曰本女人与公拘交酡免费视频 | 97久久精品无码一区二区 | 国产性生大片免费观看性 | 久久久www成人免费毛片 | 国产真人无遮挡作爱免费视频 | 欧美变态另类xxxx | 天下第一社区视频www日本 | 国产精品毛多多水多 | 无套内射视频囯产 | 国产av久久久久精东av | 性欧美疯狂xxxxbbbb | 无码国产色欲xxxxx视频 | 久久精品无码一区二区三区 | 成人精品视频一区二区三区尤物 | 国产精品毛片一区二区 | 亚拍精品一区二区三区探花 | 大色综合色综合网站 | 亚洲日韩中文字幕在线播放 | 国产口爆吞精在线视频 | 精品无码av一区二区三区 | 99国产欧美久久久精品 | 婷婷综合久久中文字幕蜜桃三电影 | 欧美一区二区三区 | 少女韩国电视剧在线观看完整 | 国产av无码专区亚洲a∨毛片 | 国产绳艺sm调教室论坛 | 亚洲国产欧美日韩精品一区二区三区 | 人人超人人超碰超国产 | 亚洲日韩一区二区三区 | 亚洲国精产品一二二线 | 国内少妇偷人精品视频 | 激情综合激情五月俺也去 | 国产精品高潮呻吟av久久 | 国产av久久久久精东av | 免费无码一区二区三区蜜桃大 | 色一情一乱一伦一视频免费看 | 18精品久久久无码午夜福利 | 久久久www成人免费毛片 | 亚洲精品一区二区三区在线 | 少妇被粗大的猛进出69影院 | 夜夜高潮次次欢爽av女 | 国内精品人妻无码久久久影院 | 98国产精品综合一区二区三区 | 国产精品久久久久久久影院 | 在线 国产 欧美 亚洲 天堂 | 天天躁日日躁狠狠躁免费麻豆 | 久久久精品国产sm最大网站 | 十八禁真人啪啪免费网站 | 黑人巨大精品欧美黑寡妇 | 无码福利日韩神码福利片 | 国产精品人妻一区二区三区四 | 免费网站看v片在线18禁无码 | 日本在线高清不卡免费播放 | 久久综合香蕉国产蜜臀av | 久久久中文字幕日本无吗 | 人妻中文无码久热丝袜 | 亚洲色在线无码国产精品不卡 | 成人片黄网站色大片免费观看 | 日本丰满护士爆乳xxxx | 精品国产乱码久久久久乱码 | 精品乱码久久久久久久 | 亚洲国产精品一区二区第一页 | 成熟女人特级毛片www免费 | 久久天天躁夜夜躁狠狠 | 成年美女黄网站色大免费全看 | 国产偷自视频区视频 | 四虎国产精品一区二区 | 成人aaa片一区国产精品 | 亚洲性无码av中文字幕 | 99er热精品视频 | 久久久国产一区二区三区 | 高清不卡一区二区三区 | 最近中文2019字幕第二页 | 亚洲一区二区三区偷拍女厕 | 中文字幕无码日韩欧毛 | 国产精品久久久久9999小说 | 成年美女黄网站色大免费全看 | 天海翼激烈高潮到腰振不止 | 亚洲欧洲日本综合aⅴ在线 | 中文字幕人妻无码一夲道 | 欧美老妇交乱视频在线观看 | 国产内射爽爽大片视频社区在线 | 亚洲一区二区三区四区 | 亚洲一区二区三区无码久久 | 青青草原综合久久大伊人精品 | 国产综合色产在线精品 | 国产精品久久久久久久影院 | 成人一在线视频日韩国产 | 国内丰满熟女出轨videos | 亚洲 欧美 激情 小说 另类 | 无码人妻少妇伦在线电影 | 成在人线av无码免费 | 真人与拘做受免费视频 | 成人无码精品1区2区3区免费看 | 国产精品无码一区二区三区不卡 | 色综合久久久无码网中文 | 中文字幕乱码中文乱码51精品 | 中文字幕无码av波多野吉衣 | 中文字幕无码人妻少妇免费 | 无码av免费一区二区三区试看 | 国产精品无码一区二区桃花视频 | 成人免费视频一区二区 | 久久久成人毛片无码 | 国产精品亚洲综合色区韩国 | 粗大的内捧猛烈进出视频 | 日本高清一区免费中文视频 | 日韩人妻无码中文字幕视频 | 色妞www精品免费视频 | 免费无码午夜福利片69 | 国产成人无码区免费内射一片色欲 | 精品无人区无码乱码毛片国产 | 免费网站看v片在线18禁无码 | 日韩欧美群交p片內射中文 | 亚洲日韩av片在线观看 | 国产成人无码午夜视频在线观看 | 久久精品国产99久久6动漫 | 亚洲中文无码av永久不收费 | 亚洲精品国产第一综合99久久 | 久青草影院在线观看国产 | 国产精品丝袜黑色高跟鞋 | 久久久久亚洲精品中文字幕 | 思思久久99热只有频精品66 | 亚洲一区二区三区含羞草 | 六月丁香婷婷色狠狠久久 | 红桃av一区二区三区在线无码av | 成人毛片一区二区 | 国产美女极度色诱视频www | 国产精品久久久久9999小说 | 久久久www成人免费毛片 | 国产人妻精品午夜福利免费 | 丰满诱人的人妻3 | 荫蒂添的好舒服视频囗交 | 丝袜 中出 制服 人妻 美腿 | 日本一本二本三区免费 | 精品少妇爆乳无码av无码专区 | 国产激情一区二区三区 | 亚洲中文字幕在线观看 | 国内精品九九久久久精品 | 国产精品无码一区二区桃花视频 | 无码免费一区二区三区 | 思思久久99热只有频精品66 | 日韩视频 中文字幕 视频一区 | 国内精品一区二区三区不卡 | 亚洲欧美色中文字幕在线 | 奇米影视7777久久精品人人爽 | 国产成人一区二区三区别 | 精品 日韩 国产 欧美 视频 | 国产精品人人爽人人做我的可爱 | 久9re热视频这里只有精品 | 丝袜 中出 制服 人妻 美腿 | 国产农村妇女高潮大叫 | 人人妻人人澡人人爽精品欧美 | 久久五月精品中文字幕 | 免费无码午夜福利片69 | 国产人妻久久精品二区三区老狼 | 成年女人永久免费看片 | 人人妻人人澡人人爽欧美精品 | 免费观看的无遮挡av | 又大又紧又粉嫩18p少妇 | 丝袜人妻一区二区三区 | 欧美性黑人极品hd | 永久免费精品精品永久-夜色 | 少妇厨房愉情理9仑片视频 | 久9re热视频这里只有精品 | 无码av中文字幕免费放 | 捆绑白丝粉色jk震动捧喷白浆 | 最近免费中文字幕中文高清百度 | 少妇邻居内射在线 | 欧美xxxx黑人又粗又长 | 亚洲精品国产第一综合99久久 | 牲交欧美兽交欧美 | 国产超级va在线观看视频 | 久久综合九色综合欧美狠狠 | 精品国精品国产自在久国产87 | 亚洲国产精品无码久久久久高潮 | 好爽又高潮了毛片免费下载 | 风流少妇按摩来高潮 | 性生交片免费无码看人 | 亚洲国产精华液网站w | 久久 国产 尿 小便 嘘嘘 | 日韩精品a片一区二区三区妖精 | 久热国产vs视频在线观看 | 久久久久国色av免费观看性色 | 日日橹狠狠爱欧美视频 | 天干天干啦夜天干天2017 | 人人妻人人藻人人爽欧美一区 | 国产乱人伦av在线无码 | 国产成人无码一二三区视频 | 亚洲成av人片天堂网无码】 | 国产内射老熟女aaaa | 性色欲网站人妻丰满中文久久不卡 | 欧美成人家庭影院 | 欧美丰满老熟妇xxxxx性 | 偷窥日本少妇撒尿chinese | 国产成人人人97超碰超爽8 | 图片区 小说区 区 亚洲五月 | 亚洲 日韩 欧美 成人 在线观看 | 欧洲精品码一区二区三区免费看 | 中文字幕无码免费久久9一区9 | 国产免费观看黄av片 | 日本熟妇大屁股人妻 | 狠狠色丁香久久婷婷综合五月 | 成人无码精品一区二区三区 | 国产suv精品一区二区五 | 久久亚洲国产成人精品性色 | 亚洲区小说区激情区图片区 | 麻豆果冻传媒2021精品传媒一区下载 | 欧美熟妇另类久久久久久多毛 | 成 人 免费观看网站 | 天天做天天爱天天爽综合网 | 中文字幕乱妇无码av在线 | 国产97色在线 | 免 | 99在线 | 亚洲 | 久久精品国产一区二区三区肥胖 | 成人一在线视频日韩国产 | 午夜精品一区二区三区的区别 | 国产人妻人伦精品1国产丝袜 | 国产成人无码一二三区视频 | 最新国产乱人伦偷精品免费网站 | 98国产精品综合一区二区三区 | 亚洲精品一区二区三区在线观看 | 无码av岛国片在线播放 | 国产av剧情md精品麻豆 | 亚洲日本在线电影 | 亚洲色大成网站www | 欧美黑人巨大xxxxx | 熟妇人妻无码xxx视频 | 久久97精品久久久久久久不卡 | 麻花豆传媒剧国产免费mv在线 | 国产亚洲精品久久久久久大师 | 久久综合九色综合97网 | 青青久在线视频免费观看 | 国产精品无码mv在线观看 | 亚洲日韩av一区二区三区中文 | 中文字幕无码av激情不卡 | 天天躁夜夜躁狠狠是什么心态 | 亚洲国产精品久久久天堂 | 国产亚洲精品精品国产亚洲综合 | 无码乱肉视频免费大全合集 | 成人影院yy111111在线观看 | 99国产欧美久久久精品 | 国产亚洲精品久久久ai换 | 精品厕所偷拍各类美女tp嘘嘘 | 国产精品久久久 | 日本一区二区三区免费播放 | 亚洲精品午夜国产va久久成人 | 久久99精品久久久久久动态图 | 午夜精品一区二区三区在线观看 | 强奷人妻日本中文字幕 | 欧美激情一区二区三区成人 | 日韩人妻少妇一区二区三区 | 亚洲伊人久久精品影院 | 激情国产av做激情国产爱 | 捆绑白丝粉色jk震动捧喷白浆 | 国内精品一区二区三区不卡 | 亚洲精品国产品国语在线观看 | 亚洲一区二区三区 | 久久国产劲爆∧v内射 | 久久亚洲中文字幕精品一区 | 婷婷五月综合激情中文字幕 | 狠狠躁日日躁夜夜躁2020 | 亚洲精品中文字幕 | 国产av无码专区亚洲a∨毛片 | 人妻熟女一区 | 久久精品视频在线看15 | 99久久久无码国产精品免费 | 色综合久久久无码网中文 | 动漫av一区二区在线观看 | 综合激情五月综合激情五月激情1 | 67194成是人免费无码 | 国产精品99久久精品爆乳 | 免费看男女做好爽好硬视频 | 亚洲乱码日产精品bd | av无码久久久久不卡免费网站 | 无码精品国产va在线观看dvd | 亚洲中文字幕无码一久久区 | 一个人看的www免费视频在线观看 | 国产97在线 | 亚洲 | 国语精品一区二区三区 | 嫩b人妻精品一区二区三区 | 丰腴饱满的极品熟妇 | 国产成人精品必看 | 国产成人综合在线女婷五月99播放 | 无码纯肉视频在线观看 | 国产av一区二区精品久久凹凸 | 无码精品人妻一区二区三区av | 高清无码午夜福利视频 | 国产精品资源一区二区 | 国产精品久久久久影院嫩草 | 呦交小u女精品视频 | 一个人看的www免费视频在线观看 | 老熟妇仑乱视频一区二区 | 东北女人啪啪对白 | 精品厕所偷拍各类美女tp嘘嘘 | 免费中文字幕日韩欧美 | 久久久久久久久蜜桃 | 99国产精品白浆在线观看免费 | 狠狠亚洲超碰狼人久久 | 欧美老妇交乱视频在线观看 | 色情久久久av熟女人妻网站 | 久久亚洲日韩精品一区二区三区 | 黑人巨大精品欧美一区二区 | 亚洲国产精品毛片av不卡在线 | 精品无人区无码乱码毛片国产 | 俺去俺来也www色官网 | 人妻少妇精品视频专区 | 波多野结衣一区二区三区av免费 | 性啪啪chinese东北女人 | 午夜精品久久久久久久久 | 内射巨臀欧美在线视频 | 99久久亚洲精品无码毛片 | 色诱久久久久综合网ywww | 久久成人a毛片免费观看网站 | 草草网站影院白丝内射 | 国产69精品久久久久app下载 | 狠狠躁日日躁夜夜躁2020 | 亚洲欧美综合区丁香五月小说 | 漂亮人妻洗澡被公强 日日躁 | 国产午夜亚洲精品不卡下载 | 国产又粗又硬又大爽黄老大爷视 | 清纯唯美经典一区二区 | 中文字幕无码av激情不卡 | 人人妻在人人 | 内射欧美老妇wbb | 亚洲中文字幕va福利 | 国产网红无码精品视频 | 高潮毛片无遮挡高清免费视频 | 亚洲精品中文字幕久久久久 | 亚洲成a人片在线观看日本 | av小次郎收藏 | 国产精品久久国产精品99 | 国产精品久久久久久无码 | 少女韩国电视剧在线观看完整 | 精品国产一区二区三区av 性色 | 亚洲а∨天堂久久精品2021 | 精品久久久无码人妻字幂 | 内射后入在线观看一区 | a在线观看免费网站大全 | 欧美三级a做爰在线观看 | 亚洲熟妇自偷自拍另类 | 骚片av蜜桃精品一区 | 中文无码伦av中文字幕 | 无码精品人妻一区二区三区av | 亚洲第一无码av无码专区 | 亚洲色欲色欲天天天www | 欧美丰满熟妇xxxx性ppx人交 | 欧美日本免费一区二区三区 | 欧美人妻一区二区三区 | 内射白嫩少妇超碰 | 亚洲国产精品一区二区第一页 | 亚洲人成网站免费播放 | √天堂资源地址中文在线 | 欧美丰满熟妇xxxx性ppx人交 | 日日麻批免费40分钟无码 | 中国女人内谢69xxxx | 精品欧美一区二区三区久久久 | 波多野结衣乳巨码无在线观看 | 亚洲成a人片在线观看无码3d | 日韩av无码一区二区三区 | 欧美国产日产一区二区 | 好男人社区资源 | 99精品无人区乱码1区2区3区 | 亚拍精品一区二区三区探花 | 精品无码国产一区二区三区av | 国产精品va在线播放 | 久久亚洲国产成人精品性色 | 国产偷抇久久精品a片69 | 男女超爽视频免费播放 | 男人和女人高潮免费网站 | 啦啦啦www在线观看免费视频 | 四虎永久在线精品免费网址 | a片免费视频在线观看 | aa片在线观看视频在线播放 | 熟女体下毛毛黑森林 | 玩弄人妻少妇500系列视频 | 丰满人妻翻云覆雨呻吟视频 | 一本大道久久东京热无码av | 亚洲 欧美 激情 小说 另类 | 无码吃奶揉捏奶头高潮视频 | 国精品人妻无码一区二区三区蜜柚 | 国产三级久久久精品麻豆三级 | av无码久久久久不卡免费网站 | 国产麻豆精品精东影业av网站 | 亚洲高清偷拍一区二区三区 | 国产激情无码一区二区app | 日韩少妇白浆无码系列 | 人人爽人人爽人人片av亚洲 | 最新国产麻豆aⅴ精品无码 | 国产三级精品三级男人的天堂 | 四虎4hu永久免费 | 九九久久精品国产免费看小说 | 国产成人一区二区三区别 | 无码人中文字幕 | 麻豆md0077饥渴少妇 | 高潮喷水的毛片 | 亚洲一区二区三区无码久久 | 亚洲呦女专区 | 亚洲s色大片在线观看 | 漂亮人妻洗澡被公强 日日躁 | 国产无av码在线观看 | 久久99精品久久久久久 | 性欧美熟妇videofreesex | 玩弄人妻少妇500系列视频 | аⅴ资源天堂资源库在线 | 青春草在线视频免费观看 | 六十路熟妇乱子伦 | 久青草影院在线观看国产 | 欧美老妇交乱视频在线观看 | 国产偷抇久久精品a片69 | 亚洲国产高清在线观看视频 | 精品无人区无码乱码毛片国产 | 亚洲欧美国产精品专区久久 | 色欲av亚洲一区无码少妇 | 免费观看又污又黄的网站 | 性欧美牲交在线视频 | 中国大陆精品视频xxxx | 东京热无码av男人的天堂 | 国产精品久免费的黄网站 | 小sao货水好多真紧h无码视频 | 免费国产黄网站在线观看 | 日韩视频 中文字幕 视频一区 | 国产超级va在线观看视频 | 久久99精品久久久久婷婷 | 国产精品怡红院永久免费 | 成人女人看片免费视频放人 | 天天爽夜夜爽夜夜爽 | 一本大道久久东京热无码av | 玩弄少妇高潮ⅹxxxyw | 精品一区二区三区无码免费视频 | 少妇无码av无码专区在线观看 | 欧美日韩一区二区三区自拍 | 亚洲区小说区激情区图片区 | 性史性农村dvd毛片 | 国产人成高清在线视频99最全资源 | 国产免费久久精品国产传媒 | 99久久人妻精品免费一区 | 少妇被粗大的猛进出69影院 | 欧美35页视频在线观看 | 亚洲精品久久久久中文第一幕 | 大胆欧美熟妇xx | 学生妹亚洲一区二区 | 日韩av无码一区二区三区不卡 | 麻豆国产人妻欲求不满谁演的 | 国产偷自视频区视频 | 76少妇精品导航 | 国产精品毛片一区二区 | 国产无套内射久久久国产 | 偷窥日本少妇撒尿chinese | 色一情一乱一伦 | 久精品国产欧美亚洲色aⅴ大片 | 欧美性色19p | 麻豆精品国产精华精华液好用吗 | 人妻有码中文字幕在线 | 亚洲一区二区观看播放 | 人妻少妇精品无码专区二区 | 领导边摸边吃奶边做爽在线观看 | 18精品久久久无码午夜福利 | 国产精品二区一区二区aⅴ污介绍 | 樱花草在线播放免费中文 | 久久综合香蕉国产蜜臀av | 青青青手机频在线观看 | 亚洲精品成a人在线观看 | 国产9 9在线 | 中文 | 色综合久久中文娱乐网 | 天堂亚洲免费视频 | 亚洲高清偷拍一区二区三区 | 国产乱人伦av在线无码 | 人妻互换免费中文字幕 | 成人免费视频视频在线观看 免费 | 蜜桃视频插满18在线观看 | 中文字幕人妻无码一夲道 | 又大又硬又黄的免费视频 | 国产亚洲精品久久久久久大师 | 中文字幕无码免费久久9一区9 | 国产亚洲精品久久久久久国模美 | 亚洲欧美色中文字幕在线 | 亚洲日韩av一区二区三区四区 | 人人妻人人澡人人爽人人精品 | 又紧又大又爽精品一区二区 | 对白脏话肉麻粗话av | 正在播放东北夫妻内射 | 亚洲色无码一区二区三区 | 水蜜桃亚洲一二三四在线 | 伊人色综合久久天天小片 | 精品一二三区久久aaa片 | 精品久久8x国产免费观看 | 蜜桃av抽搐高潮一区二区 | 97人妻精品一区二区三区 | 国产超碰人人爽人人做人人添 | 国产精品无码永久免费888 | 成人aaa片一区国产精品 | 久久人人97超碰a片精品 | 国产一区二区三区日韩精品 | 熟妇激情内射com | 国产一区二区三区日韩精品 | 免费人成在线观看网站 | 亚洲成av人在线观看网址 | 国产精品久免费的黄网站 | 一本久道久久综合婷婷五月 | 国产高潮视频在线观看 | 中文字幕中文有码在线 | 色爱情人网站 | 男女性色大片免费网站 | 亚洲日韩乱码中文无码蜜桃臀网站 | 成年美女黄网站色大免费全看 | 国产精品a成v人在线播放 | 国产精品va在线观看无码 | 丰满少妇女裸体bbw | 亚洲熟女一区二区三区 | 国产精品久免费的黄网站 | 亚洲精品久久久久久久久久久 | 熟女少妇人妻中文字幕 | 国产女主播喷水视频在线观看 | 久久综合色之久久综合 | 婷婷五月综合缴情在线视频 | 日本又色又爽又黄的a片18禁 | 欧美老妇交乱视频在线观看 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | а√天堂www在线天堂小说 | 在教室伦流澡到高潮hnp视频 | 高清不卡一区二区三区 | 国产女主播喷水视频在线观看 | 无码国产乱人伦偷精品视频 | 亚洲人亚洲人成电影网站色 | 樱花草在线社区www | 精品厕所偷拍各类美女tp嘘嘘 | 国产极品美女高潮无套在线观看 | 丰满少妇女裸体bbw | 精品久久久中文字幕人妻 | 欧美精品在线观看 | 三上悠亚人妻中文字幕在线 | 乱码午夜-极国产极内射 | 欧美丰满熟妇xxxx | 亚洲精品www久久久 | 一区二区三区高清视频一 | 免费无码av一区二区 | 又色又爽又黄的美女裸体网站 | 蜜桃视频插满18在线观看 | 日韩精品无码一本二本三本色 | 两性色午夜视频免费播放 | 人妻与老人中文字幕 | 国产精品久久久久久久影院 | 精品厕所偷拍各类美女tp嘘嘘 | 精品一二三区久久aaa片 | 国产精品嫩草久久久久 | 中文精品久久久久人妻不卡 | 国产黄在线观看免费观看不卡 | 久久99精品久久久久婷婷 | 国产成人午夜福利在线播放 | 国产成人无码一二三区视频 | 亚洲精品久久久久中文第一幕 | 国产精品亚洲五月天高清 | 亚洲色偷偷偷综合网 | 免费观看的无遮挡av | 狠狠色噜噜狠狠狠狠7777米奇 | 国产色xx群视频射精 | 色综合久久久无码中文字幕 | 一区二区传媒有限公司 | 四虎国产精品免费久久 | 精品无码av一区二区三区 | 对白脏话肉麻粗话av | 亚洲一区二区观看播放 | 欧美成人午夜精品久久久 | 国产精品久久久久影院嫩草 | 久久久久成人片免费观看蜜芽 | 中文久久乱码一区二区 | 久青草影院在线观看国产 | 中文字幕久久久久人妻 | 精品一区二区三区波多野结衣 | 亚洲熟熟妇xxxx | 欧美国产日韩亚洲中文 | 老司机亚洲精品影院 | 中国女人内谢69xxxxxa片 | 免费无码一区二区三区蜜桃大 | 久久精品国产一区二区三区 | 久久99精品国产麻豆蜜芽 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久综合狠狠综合久久综合88 | 亚洲啪av永久无码精品放毛片 | 久久亚洲日韩精品一区二区三区 | 欧美高清在线精品一区 | 国产一区二区三区影院 | 牲欲强的熟妇农村老妇女视频 | 7777奇米四色成人眼影 | 久久视频在线观看精品 | 国产无遮挡又黄又爽免费视频 | 午夜成人1000部免费视频 | 丝袜 中出 制服 人妻 美腿 | 精品人妻中文字幕有码在线 | 午夜男女很黄的视频 | 人妻插b视频一区二区三区 | 久久久国产一区二区三区 | 超碰97人人做人人爱少妇 | 日韩av激情在线观看 | 国产一区二区三区影院 | 乱人伦人妻中文字幕无码 | 国产综合色产在线精品 | 国产av一区二区精品久久凹凸 | 亚洲精品综合五月久久小说 | 欧美性猛交内射兽交老熟妇 | 国产无套内射久久久国产 | 中文字幕无码av波多野吉衣 | 人妻有码中文字幕在线 | 免费看男女做好爽好硬视频 | 亚洲精品美女久久久久久久 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品无码mv在线观看 | 成人无码视频免费播放 | 97夜夜澡人人双人人人喊 | 国产极品美女高潮无套在线观看 | 亚洲狠狠色丁香婷婷综合 | 亚洲精品中文字幕 | 曰本女人与公拘交酡免费视频 | 欧美国产日产一区二区 | 日本www一道久久久免费榴莲 | 欧美成人免费全部网站 | 久久精品无码一区二区三区 | aa片在线观看视频在线播放 | 免费国产成人高清在线观看网站 | 久久国产精品二国产精品 | 97久久超碰中文字幕 | 亚洲自偷自拍另类第1页 | 亚洲综合色区中文字幕 | 人妻中文无码久热丝袜 | 人妻互换免费中文字幕 | 波多野结衣乳巨码无在线观看 | 国产精品无码一区二区桃花视频 | 无人区乱码一区二区三区 | 欧美乱妇无乱码大黄a片 | 国产又爽又猛又粗的视频a片 | 国产av剧情md精品麻豆 | 国产精品第一国产精品 | 国内揄拍国内精品少妇国语 | 无码吃奶揉捏奶头高潮视频 | 亚洲无人区午夜福利码高清完整版 | 国产精品99久久精品爆乳 | 国产 精品 自在自线 | 久久这里只有精品视频9 | 性啪啪chinese东北女人 | 国产精品毛多多水多 | 国产精品鲁鲁鲁 | 中文精品久久久久人妻不卡 | 一个人看的www免费视频在线观看 | 国产精品毛多多水多 | 亚洲精品鲁一鲁一区二区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 自拍偷自拍亚洲精品被多人伦好爽 | 东京无码熟妇人妻av在线网址 | 久久99精品国产.久久久久 | 久久久婷婷五月亚洲97号色 | 天堂а√在线地址中文在线 | 国产9 9在线 | 中文 | 欧美兽交xxxx×视频 | 国产精品久久久久久亚洲影视内衣 | 国产精品久久国产精品99 | √天堂中文官网8在线 | 久久国语露脸国产精品电影 | 色欲久久久天天天综合网精品 | 久久婷婷五月综合色国产香蕉 | 国产亚av手机在线观看 | 成人无码视频免费播放 | 狠狠综合久久久久综合网 | 六月丁香婷婷色狠狠久久 | 国产麻豆精品精东影业av网站 | 天天躁夜夜躁狠狠是什么心态 | 欧美激情一区二区三区成人 | 中文字幕精品av一区二区五区 | 男女性色大片免费网站 | 国产麻豆精品一区二区三区v视界 | 中文字幕亚洲情99在线 | 国产成人无码区免费内射一片色欲 | 激情人妻另类人妻伦 | 丰满诱人的人妻3 | a在线亚洲男人的天堂 | 成年女人永久免费看片 | 男人的天堂2018无码 | 装睡被陌生人摸出水好爽 | 奇米影视7777久久精品人人爽 | 又粗又大又硬又长又爽 | 精品熟女少妇av免费观看 | 综合网日日天干夜夜久久 | 亚洲精品国偷拍自产在线麻豆 | 扒开双腿疯狂进出爽爽爽视频 | 小鲜肉自慰网站xnxx | 久久综合九色综合欧美狠狠 | 中文字幕无码日韩欧毛 | 国产偷抇久久精品a片69 | 成人欧美一区二区三区黑人免费 | a国产一区二区免费入口 | 国产精品无码成人午夜电影 | 真人与拘做受免费视频一 | 一区二区传媒有限公司 | 久久精品中文闷骚内射 | 真人与拘做受免费视频 | 未满小14洗澡无码视频网站 | 亚洲啪av永久无码精品放毛片 | 国产av久久久久精东av | 欧美激情综合亚洲一二区 | 亚洲成a人片在线观看日本 | 人妻aⅴ无码一区二区三区 | 狠狠色噜噜狠狠狠狠7777米奇 | 日韩精品久久久肉伦网站 | 粉嫩少妇内射浓精videos | 亚洲一区二区三区在线观看网站 | 亚洲精品久久久久中文第一幕 | 亚洲精品中文字幕久久久久 | 人妻体内射精一区二区三四 | 2020久久香蕉国产线看观看 | 亚洲人成影院在线观看 | 国产成人精品一区二区在线小狼 | 国产人妻人伦精品 | 麻豆国产丝袜白领秘书在线观看 | 性史性农村dvd毛片 | 成熟人妻av无码专区 | 久久久久亚洲精品中文字幕 | 99久久婷婷国产综合精品青草免费 | 人妻少妇精品无码专区二区 | 免费无码肉片在线观看 | 麻豆国产97在线 | 欧洲 | 成熟女人特级毛片www免费 | 亚洲国产成人av在线观看 | 欧美日韩视频无码一区二区三 | 男女超爽视频免费播放 | av香港经典三级级 在线 | 欧美成人高清在线播放 | 成人精品视频一区二区三区尤物 | 性欧美熟妇videofreesex | 国产午夜无码精品免费看 | 2020久久超碰国产精品最新 | 无遮挡啪啪摇乳动态图 | 男人的天堂2018无码 | 国产麻豆精品一区二区三区v视界 | 久久99久久99精品中文字幕 | 欧美激情内射喷水高潮 | 任你躁国产自任一区二区三区 | 午夜福利一区二区三区在线观看 | 兔费看少妇性l交大片免费 | 欧美亚洲日韩国产人成在线播放 | 欧洲精品码一区二区三区免费看 | 国产激情艳情在线看视频 | 国产精品-区区久久久狼 | 老司机亚洲精品影院 | 老熟妇乱子伦牲交视频 | 精品久久久无码中文字幕 | 久久综合久久自在自线精品自 | 国产精品理论片在线观看 | 欧美猛少妇色xxxxx | 国产精品自产拍在线观看 | 性开放的女人aaa片 | 日本乱人伦片中文三区 | 日韩成人一区二区三区在线观看 | 久久久久99精品成人片 | 狠狠色欧美亚洲狠狠色www | 国产综合久久久久鬼色 | 国产精品永久免费视频 | 精品人妻av区 | 丰满人妻一区二区三区免费视频 | 亚洲无人区午夜福利码高清完整版 | 国产电影无码午夜在线播放 | 久青草影院在线观看国产 | 国产偷抇久久精品a片69 | 2019nv天堂香蕉在线观看 | 久久精品国产日本波多野结衣 | 精品人妻人人做人人爽 | 亚洲国产欧美国产综合一区 | 亚洲aⅴ无码成人网站国产app | 国产av人人夜夜澡人人爽麻豆 | 精品日本一区二区三区在线观看 | 18黄暴禁片在线观看 | 国内少妇偷人精品视频免费 | 久久天天躁夜夜躁狠狠 | 三上悠亚人妻中文字幕在线 | 国产人妻精品午夜福利免费 | 欧美乱妇无乱码大黄a片 | 波多野结衣乳巨码无在线观看 | 国产成人一区二区三区在线观看 | 又黄又爽又色的视频 | 精品 日韩 国产 欧美 视频 | 国产精品99久久精品爆乳 | 成人女人看片免费视频放人 | 精品一区二区三区波多野结衣 | 性啪啪chinese东北女人 | 2020最新国产自产精品 | 强辱丰满人妻hd中文字幕 | 波多野42部无码喷潮在线 | 久久精品人妻少妇一区二区三区 | 国产欧美精品一区二区三区 | 99视频精品全部免费免费观看 | 亚洲熟熟妇xxxx | 中文字幕人妻丝袜二区 | 国产精品久久国产三级国 | 亚洲毛片av日韩av无码 | 强开小婷嫩苞又嫩又紧视频 | 99久久精品国产一区二区蜜芽 | 久久精品国产99久久6动漫 | 激情综合激情五月俺也去 | 国产亚洲精品久久久闺蜜 | 伦伦影院午夜理论片 | 久久无码中文字幕免费影院蜜桃 | 99久久久无码国产aaa精品 | 给我免费的视频在线观看 | 九月婷婷人人澡人人添人人爽 | 亚洲精品成a人在线观看 | 亚洲午夜久久久影院 | 国产一区二区三区四区五区加勒比 | 欧美喷潮久久久xxxxx | 国产亚洲欧美在线专区 | 无码乱肉视频免费大全合集 | 免费无码午夜福利片69 | 强伦人妻一区二区三区视频18 | 色综合久久久无码中文字幕 | 亚洲精品国产精品乱码不卡 | 国产成人精品必看 | 国产香蕉尹人综合在线观看 | 男女性色大片免费网站 | 精品人妻中文字幕有码在线 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲人亚洲人成电影网站色 | 高清不卡一区二区三区 | 无码人妻黑人中文字幕 | 久久精品国产精品国产精品污 | 一个人看的www免费视频在线观看 | 欧美亚洲日韩国产人成在线播放 | 亚洲爆乳无码专区 | 美女极度色诱视频国产 | 亚洲第一无码av无码专区 | 精品亚洲成av人在线观看 | 色一情一乱一伦一视频免费看 | 亚洲娇小与黑人巨大交 | 大乳丰满人妻中文字幕日本 | 2019午夜福利不卡片在线 | 又大又黄又粗又爽的免费视频 | 国产一区二区三区四区五区加勒比 | 亚洲爆乳大丰满无码专区 | 亚洲一区二区三区 | 人妻无码久久精品人妻 | 欧美丰满老熟妇xxxxx性 | 熟女少妇在线视频播放 | 在线观看免费人成视频 | 精品无码av一区二区三区 | 亚洲性无码av中文字幕 | 精品久久久久久人妻无码中文字幕 | 午夜成人1000部免费视频 | 男女猛烈xx00免费视频试看 | 欧美放荡的少妇 | 日日摸日日碰夜夜爽av | 国产一精品一av一免费 | 丁香花在线影院观看在线播放 | 在线а√天堂中文官网 | 日本护士xxxxhd少妇 | 久久午夜无码鲁丝片 | 亚洲天堂2017无码 | 午夜福利电影 | 日日摸夜夜摸狠狠摸婷婷 | aa片在线观看视频在线播放 | 精品久久久无码中文字幕 | 久久综合色之久久综合 | 日本高清一区免费中文视频 | 六月丁香婷婷色狠狠久久 | 亚洲中文字幕无码一久久区 | 国产精品国产自线拍免费软件 | 国产精品久久久久久亚洲影视内衣 | 我要看www免费看插插视频 | 国产suv精品一区二区五 | 中文字幕+乱码+中文字幕一区 | 久久熟妇人妻午夜寂寞影院 | 色欲久久久天天天综合网精品 | 成人片黄网站色大片免费观看 | 亚洲国产av美女网站 | 午夜肉伦伦影院 | 色一情一乱一伦一视频免费看 | 精品久久久中文字幕人妻 | 欧美老人巨大xxxx做受 | 熟妇激情内射com | 老头边吃奶边弄进去呻吟 | 亚洲午夜无码久久 | 大肉大捧一进一出视频出来呀 | 夫妻免费无码v看片 | 东京热无码av男人的天堂 | 人人爽人人爽人人片av亚洲 | 欧美zoozzooz性欧美 | 日本一区二区三区免费播放 | 综合网日日天干夜夜久久 | www成人国产高清内射 | 1000部夫妻午夜免费 | 麻豆国产97在线 | 欧洲 | 国产精品亚洲一区二区三区喷水 | 1000部啪啪未满十八勿入下载 | 桃花色综合影院 | 亚洲色大成网站www国产 | 国产做国产爱免费视频 | 久久久久久a亚洲欧洲av冫 | 国产精品18久久久久久麻辣 | 东京无码熟妇人妻av在线网址 | 亚洲经典千人经典日产 | 久久无码中文字幕免费影院蜜桃 | 成年美女黄网站色大免费视频 | 亚洲精品一区三区三区在线观看 | 国产 浪潮av性色四虎 | 一二三四社区在线中文视频 | 男女超爽视频免费播放 | 成人影院yy111111在线观看 | ass日本丰满熟妇pics | 国产精品对白交换视频 | 国产精品自产拍在线观看 | 亚洲中文字幕成人无码 | 小泽玛莉亚一区二区视频在线 | 中文字幕无码免费久久99 | 正在播放东北夫妻内射 | 影音先锋中文字幕无码 | 国产av剧情md精品麻豆 | 午夜男女很黄的视频 | 亚洲啪av永久无码精品放毛片 | 欧美freesex黑人又粗又大 | 中文字幕无码人妻少妇免费 | 国内精品久久久久久中文字幕 | 成人免费视频一区二区 | 色综合久久久久综合一本到桃花网 | 精品久久久无码人妻字幂 | av无码电影一区二区三区 | 成人无码视频免费播放 | 国产亚洲日韩欧美另类第八页 | 亚洲中文字幕成人无码 | 久热国产vs视频在线观看 | 女人高潮内射99精品 | 国产成人无码av一区二区 | 无码人妻丰满熟妇区五十路百度 | 少妇厨房愉情理9仑片视频 | 97久久国产亚洲精品超碰热 | 无码一区二区三区在线 | 国内精品一区二区三区不卡 | 久久久久亚洲精品男人的天堂 | 在教室伦流澡到高潮hnp视频 | 久久久久亚洲精品中文字幕 | 亚洲精品国偷拍自产在线麻豆 | 日本www一道久久久免费榴莲 | 精品人妻人人做人人爽夜夜爽 | 国产成人无码a区在线观看视频app | 无码吃奶揉捏奶头高潮视频 | 国产免费久久精品国产传媒 | 高清不卡一区二区三区 | 久精品国产欧美亚洲色aⅴ大片 | 成人无码精品1区2区3区免费看 | 日本护士毛茸茸高潮 | 国产精品内射视频免费 | 成 人 免费观看网站 | 国产精品人人爽人人做我的可爱 | 国产无遮挡吃胸膜奶免费看 | 久久精品国产99精品亚洲 | 精品无码一区二区三区的天堂 | 久久久无码中文字幕久... | 自拍偷自拍亚洲精品被多人伦好爽 | 日本丰满护士爆乳xxxx | 精品夜夜澡人妻无码av蜜桃 | 国产精品怡红院永久免费 | 又色又爽又黄的美女裸体网站 | 在线精品国产一区二区三区 | 人妻少妇精品无码专区二区 | √天堂资源地址中文在线 | 久久久久免费看成人影片 | 国产精品高潮呻吟av久久 | 亚洲成av人影院在线观看 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | www国产亚洲精品久久久日本 | 亚洲中文字幕乱码av波多ji | 亚洲人成影院在线无码按摩店 | 激情内射日本一区二区三区 | 亚欧洲精品在线视频免费观看 | 日韩精品一区二区av在线 | 亚洲 激情 小说 另类 欧美 | 精品少妇爆乳无码av无码专区 | 无码人中文字幕 | 欧美喷潮久久久xxxxx | √天堂资源地址中文在线 | 国产又粗又硬又大爽黄老大爷视 | 日本熟妇人妻xxxxx人hd | 精品乱码久久久久久久 | √8天堂资源地址中文在线 | 少妇无套内谢久久久久 | 暴力强奷在线播放无码 | 99久久精品日本一区二区免费 | aⅴ亚洲 日韩 色 图网站 播放 | 国产亚洲精品精品国产亚洲综合 | 乱码av麻豆丝袜熟女系列 | 永久免费观看国产裸体美女 | 欧美人与牲动交xxxx | 国产精品亚洲а∨无码播放麻豆 | 无码国产色欲xxxxx视频 | 麻豆国产人妻欲求不满谁演的 | 国产精品人妻一区二区三区四 | 国内综合精品午夜久久资源 | 少妇一晚三次一区二区三区 | www国产亚洲精品久久网站 | 久久国产自偷自偷免费一区调 | 东京热男人av天堂 | 在线成人www免费观看视频 | 国产亚av手机在线观看 | 免费观看的无遮挡av | 亚洲乱码日产精品bd | 97色伦图片97综合影院 | aⅴ亚洲 日韩 色 图网站 播放 | 男女猛烈xx00免费视频试看 | 99久久精品午夜一区二区 | 欧美黑人性暴力猛交喷水 | 天天做天天爱天天爽综合网 | 高潮毛片无遮挡高清免费 | 国产精品a成v人在线播放 | 欧美性猛交xxxx富婆 | 欧美乱妇无乱码大黄a片 | 亚洲自偷自偷在线制服 | 丰满妇女强制高潮18xxxx | 四虎影视成人永久免费观看视频 | www一区二区www免费 | 荡女精品导航 | 亚洲伊人久久精品影院 | 美女黄网站人色视频免费国产 | 亚洲日韩av一区二区三区中文 | 国产艳妇av在线观看果冻传媒 | 野外少妇愉情中文字幕 | 欧美人与动性行为视频 | 人人妻人人澡人人爽人人精品 | 久久久国产一区二区三区 | 欧美熟妇另类久久久久久多毛 | 夜夜高潮次次欢爽av女 | 午夜精品一区二区三区的区别 | 日本护士xxxxhd少妇 | 国产9 9在线 | 中文 | 人人澡人摸人人添 | 国内揄拍国内精品少妇国语 | 欧美黑人性暴力猛交喷水 | 日本一卡二卡不卡视频查询 | 成人无码视频在线观看网站 | av人摸人人人澡人人超碰下载 | 国产无遮挡又黄又爽免费视频 | 亚洲成a人片在线观看无码 | 国产精品亚洲五月天高清 | 日本精品人妻无码免费大全 | 亚洲s码欧洲m码国产av | 日本精品人妻无码免费大全 | 国产97色在线 | 免 | 波多野结衣aⅴ在线 | 精品国产一区av天美传媒 | 丝袜美腿亚洲一区二区 | 国产精品久久久久影院嫩草 | 奇米影视7777久久精品 | 亚洲国产精华液网站w | 国产精品毛多多水多 | 奇米影视7777久久精品人人爽 | 少妇被粗大的猛进出69影院 | 国产亚洲欧美日韩亚洲中文色 | 亚洲精品一区二区三区大桥未久 | 国产性生交xxxxx无码 | 中文字幕人成乱码熟女app | 妺妺窝人体色www婷婷 | 国产精品久久久一区二区三区 | 99精品久久毛片a片 | 天堂а√在线中文在线 | 欧美肥老太牲交大战 | 国产精品福利视频导航 | 在线成人www免费观看视频 | 天堂亚洲免费视频 | 欧美日韩色另类综合 | 免费观看激色视频网站 | 亚洲乱码日产精品bd | 亚洲乱亚洲乱妇50p | 成年美女黄网站色大免费视频 | 国产人妻大战黑人第1集 | 午夜福利不卡在线视频 | 蜜桃视频插满18在线观看 | 亚洲理论电影在线观看 | 噜噜噜亚洲色成人网站 | 久久亚洲日韩精品一区二区三区 | 人妻熟女一区 | 强伦人妻一区二区三区视频18 | 在线播放无码字幕亚洲 | 精品欧美一区二区三区久久久 | 亚洲狠狠婷婷综合久久 | 久久天天躁夜夜躁狠狠 | 精品国产成人一区二区三区 | 波多野结衣一区二区三区av免费 | 欧美国产日产一区二区 | 2019nv天堂香蕉在线观看 | 亚洲爆乳无码专区 | 99er热精品视频 | 无码精品国产va在线观看dvd | 特大黑人娇小亚洲女 | 图片区 小说区 区 亚洲五月 | 中文字幕+乱码+中文字幕一区 | 日本又色又爽又黄的a片18禁 | 少妇性l交大片欧洲热妇乱xxx | 国产一区二区三区日韩精品 | 国产真实夫妇视频 | 国内少妇偷人精品视频 | 又紧又大又爽精品一区二区 | 国产性生交xxxxx无码 | 中文亚洲成a人片在线观看 | 亚洲精品国产精品乱码视色 | 久久精品国产99精品亚洲 | 久久久久成人片免费观看蜜芽 | 香港三级日本三级妇三级 | 国产精品亚洲专区无码不卡 | 欧美放荡的少妇 | 欧美激情综合亚洲一二区 | 亚洲成熟女人毛毛耸耸多 | 久久国产36精品色熟妇 | 国产亚洲精品久久久ai换 | 天干天干啦夜天干天2017 | 131美女爱做视频 | 99久久无码一区人妻 | 国产亚洲精品久久久久久久久动漫 | 成年美女黄网站色大免费全看 | 国产成人无码av一区二区 | 成 人 免费观看网站 | 欧美激情一区二区三区成人 | 亚洲中文字幕成人无码 | 久久精品99久久香蕉国产色戒 | 久久久久久a亚洲欧洲av冫 | 乱中年女人伦av三区 | 精品国产精品久久一区免费式 | 性色欲情网站iwww九文堂 | 欧美日本精品一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 波多野结衣高清一区二区三区 | 少妇性荡欲午夜性开放视频剧场 | 任你躁国产自任一区二区三区 | 99麻豆久久久国产精品免费 | 撕开奶罩揉吮奶头视频 | 国产精品久久久久无码av色戒 | 丰满人妻被黑人猛烈进入 | 一区二区三区乱码在线 | 欧洲 | 无套内射视频囯产 | 久久国产精品二国产精品 | 亚洲一区二区三区在线观看网站 | 欧美激情内射喷水高潮 | 亚洲色欲色欲欲www在线 | 欧美性生交xxxxx久久久 | 夜夜影院未满十八勿进 | 人妻人人添人妻人人爱 | 国内精品一区二区三区不卡 | 99re在线播放 | 中文无码伦av中文字幕 | 搡女人真爽免费视频大全 | 一二三四社区在线中文视频 | 爆乳一区二区三区无码 | 亚洲色偷偷男人的天堂 | 国产激情综合五月久久 | aa片在线观看视频在线播放 | 3d动漫精品啪啪一区二区中 | 久久99精品国产麻豆 | 国内精品人妻无码久久久影院蜜桃 | 夜夜影院未满十八勿进 | 亚洲色偷偷男人的天堂 | 国产亚洲视频中文字幕97精品 | 亚洲成a人片在线观看无码3d | 国产午夜亚洲精品不卡下载 | 天天拍夜夜添久久精品 | 国内精品久久毛片一区二区 | 大肉大捧一进一出好爽视频 | 亚洲综合无码久久精品综合 | 福利一区二区三区视频在线观看 | 熟妇人妻中文av无码 | 日韩人妻少妇一区二区三区 | 色欲人妻aaaaaaa无码 | 东北女人啪啪对白 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产精品人妻一区二区三区四 | 正在播放东北夫妻内射 | 欧美亚洲日韩国产人成在线播放 | 天堂а√在线中文在线 | 奇米影视7777久久精品人人爽 | 欧美日韩人成综合在线播放 | 国产性生大片免费观看性 | 无码人妻黑人中文字幕 | 丰满人妻翻云覆雨呻吟视频 | 国産精品久久久久久久 | 国产精品久久久久久亚洲影视内衣 | 一本久久a久久精品亚洲 | 亚洲国产精品久久久久久 | а√天堂www在线天堂小说 | 亚洲精品一区二区三区婷婷月 | 免费观看的无遮挡av | 一个人看的www免费视频在线观看 | 国产另类ts人妖一区二区 | 国产综合色产在线精品 | 少妇无套内谢久久久久 | 欧美日韩一区二区三区自拍 | 强奷人妻日本中文字幕 | 午夜精品久久久久久久 | 麻豆蜜桃av蜜臀av色欲av | 在线视频网站www色 | 国产精品怡红院永久免费 | 99久久99久久免费精品蜜桃 | 亚洲中文无码av永久不收费 | 丁香花在线影院观看在线播放 | 亚洲综合在线一区二区三区 | 国产一区二区不卡老阿姨 | 精品夜夜澡人妻无码av蜜桃 | 亚洲一区二区观看播放 | 久久综合狠狠综合久久综合88 | 99久久婷婷国产综合精品青草免费 | 亚洲精品鲁一鲁一区二区三区 | 精品欧美一区二区三区久久久 | 日本在线高清不卡免费播放 | 久久国产劲爆∧v内射 | 99精品国产综合久久久久五月天 | 性欧美牲交在线视频 | 国内综合精品午夜久久资源 | 国产又粗又硬又大爽黄老大爷视 | 日韩少妇内射免费播放 | 无码精品国产va在线观看dvd | 亚洲国产精华液网站w | 给我免费的视频在线观看 | 久久久久久国产精品无码下载 | 最近免费中文字幕中文高清百度 | 内射后入在线观看一区 | 久久综合九色综合97网 | 无码精品人妻一区二区三区av | 在线播放无码字幕亚洲 | 日韩精品无码免费一区二区三区 | 免费无码av一区二区 | 日韩欧美中文字幕在线三区 | 国产精品毛片一区二区 | 久久精品国产一区二区三区 | 亚洲色在线无码国产精品不卡 | 久久无码专区国产精品s | 国产成人无码午夜视频在线观看 | 丁香啪啪综合成人亚洲 | 亚洲国产午夜精品理论片 | 成人无码精品1区2区3区免费看 | 人人澡人人妻人人爽人人蜜桃 | 国产一区二区三区精品视频 | 亚洲乱码国产乱码精品精 | 久久久久亚洲精品男人的天堂 | 在线成人www免费观看视频 | 欧美人与禽zoz0性伦交 | 久久国产精品_国产精品 | 日欧一片内射va在线影院 | 国产小呦泬泬99精品 | 久久久www成人免费毛片 | 黑人玩弄人妻中文在线 | 国产精品高潮呻吟av久久 | 精品日本一区二区三区在线观看 | 欧美老妇交乱视频在线观看 | 久久伊人色av天堂九九小黄鸭 | 国产亚洲美女精品久久久2020 | 三上悠亚人妻中文字幕在线 | 麻豆国产丝袜白领秘书在线观看 | 国产av久久久久精东av | 欧美成人高清在线播放 | 国产美女精品一区二区三区 | 美女毛片一区二区三区四区 | 对白脏话肉麻粗话av | 一本久道久久综合狠狠爱 | 国产午夜福利100集发布 | 久久久久成人片免费观看蜜芽 | 国产亚洲欧美日韩亚洲中文色 | 日本精品久久久久中文字幕 | 久久无码中文字幕免费影院蜜桃 | 久久久精品欧美一区二区免费 | 欧美zoozzooz性欧美 | 欧美色就是色 | 日本熟妇人妻xxxxx人hd | 免费观看的无遮挡av | 亚洲成av人综合在线观看 | 76少妇精品导航 | 久久国产精品_国产精品 | 久久久久久亚洲精品a片成人 | 国产一区二区三区精品视频 | 久久人人爽人人人人片 | 又紧又大又爽精品一区二区 | 国产suv精品一区二区五 | 伊人色综合久久天天小片 | 无码吃奶揉捏奶头高潮视频 | 人人爽人人澡人人高潮 | 大色综合色综合网站 | 理论片87福利理论电影 | 国产精品国产三级国产专播 | 天堂亚洲免费视频 | 久久久无码中文字幕久... | 午夜精品久久久久久久久 | 亚洲春色在线视频 | 香港三级日本三级妇三级 | 亚无码乱人伦一区二区 | 色五月丁香五月综合五月 | 久久国产精品_国产精品 | 久久伊人色av天堂九九小黄鸭 | 中文字幕无码av波多野吉衣 | 国产熟妇另类久久久久 | √天堂资源地址中文在线 | 乱码午夜-极国产极内射 | 又色又爽又黄的美女裸体网站 | 99久久精品日本一区二区免费 | 成人试看120秒体验区 | 国产乱人伦偷精品视频 | 熟女少妇人妻中文字幕 | 国产一精品一av一免费 | 国产性生大片免费观看性 | 少妇厨房愉情理9仑片视频 | 成人影院yy111111在线观看 | 日韩精品无码一区二区中文字幕 | 给我免费的视频在线观看 | 国产舌乚八伦偷品w中 | 色一情一乱一伦一视频免费看 | 在线看片无码永久免费视频 | 免费人成在线视频无码 | 樱花草在线社区www | 久久精品国产99久久6动漫 | 精品久久8x国产免费观看 | 东京一本一道一二三区 | 中文字幕+乱码+中文字幕一区 | 精品久久久久久人妻无码中文字幕 | 成人无码视频免费播放 | 国产精品高潮呻吟av久久 | 思思久久99热只有频精品66 | 久久久久久久女国产乱让韩 | 熟女少妇人妻中文字幕 | 秋霞成人午夜鲁丝一区二区三区 | 欧美自拍另类欧美综合图片区 | 全黄性性激高免费视频 | 永久黄网站色视频免费直播 | 欧洲vodafone精品性 | 日日摸天天摸爽爽狠狠97 | 日韩在线不卡免费视频一区 | 欧美 日韩 人妻 高清 中文 | 国产卡一卡二卡三 | 日韩 欧美 动漫 国产 制服 | 日日躁夜夜躁狠狠躁 | 成人欧美一区二区三区黑人 | 丰满护士巨好爽好大乳 | 日韩av无码中文无码电影 | 日本肉体xxxx裸交 | 国产亚洲人成在线播放 | 国产精品久久久久9999小说 | 亚洲成av人片天堂网无码】 | 日本精品高清一区二区 | 九月婷婷人人澡人人添人人爽 | 男人扒开女人内裤强吻桶进去 | 国产精品怡红院永久免费 | 免费国产黄网站在线观看 | 亚洲 欧美 激情 小说 另类 | 好男人社区资源 | 国产精品爱久久久久久久 | 全球成人中文在线 | 国产精品久久久午夜夜伦鲁鲁 | 国内少妇偷人精品视频 | 亚洲成av人在线观看网址 | 天天拍夜夜添久久精品 | 日本熟妇大屁股人妻 | 欧美性生交xxxxx久久久 | 国产精品毛片一区二区 | 日日噜噜噜噜夜夜爽亚洲精品 | 熟女俱乐部五十路六十路av | 永久免费精品精品永久-夜色 | 97夜夜澡人人双人人人喊 | 无码午夜成人1000部免费视频 | 未满小14洗澡无码视频网站 | 性史性农村dvd毛片 | 国产偷抇久久精品a片69 | 亚洲人成网站色7799 | 成人三级无码视频在线观看 | 亚洲码国产精品高潮在线 | 亚洲国产精品美女久久久久 | 伊人色综合久久天天小片 | av无码不卡在线观看免费 | 久久www免费人成人片 | 亚洲小说图区综合在线 | 99久久精品无码一区二区毛片 | 三级4级全黄60分钟 | 亚洲爆乳精品无码一区二区三区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 黑人大群体交免费视频 | 色一情一乱一伦一区二区三欧美 | 黑人玩弄人妻中文在线 | 日产国产精品亚洲系列 | 国产午夜手机精彩视频 | 久久久久av无码免费网 | 巨爆乳无码视频在线观看 | 亚洲精品一区二区三区在线 | 国产国产精品人在线视 | 性做久久久久久久久 | 国产av人人夜夜澡人人爽麻豆 | 久久综合九色综合97网 | 99久久人妻精品免费二区 | 午夜精品一区二区三区在线观看 | √天堂中文官网8在线 | 色欲久久久天天天综合网精品 | 小泽玛莉亚一区二区视频在线 | 婷婷丁香五月天综合东京热 | 国产成人无码区免费内射一片色欲 | 中文字幕日产无线码一区 | 少妇无码吹潮 | 黑森林福利视频导航 | 亚洲国产精品无码久久久久高潮 | 色综合久久久无码中文字幕 | 亚洲国产高清在线观看视频 | 国产美女精品一区二区三区 | 精品人妻人人做人人爽 | 久久综合九色综合欧美狠狠 | 天堂一区人妻无码 | 日本一区二区三区免费高清 | 亚洲日本va午夜在线电影 | 亚洲色欲久久久综合网东京热 | 欧美真人作爱免费视频 | 国产 精品 自在自线 | 成在人线av无码免费 | 女人和拘做爰正片视频 | 美女张开腿让人桶 | 成人性做爰aaa片免费看 | 久久午夜无码鲁丝片秋霞 | 亚洲小说图区综合在线 | 亚欧洲精品在线视频免费观看 | 国产成人无码av一区二区 | 午夜精品久久久久久久 | 日韩 欧美 动漫 国产 制服 | 国内精品人妻无码久久久影院 | 我要看www免费看插插视频 | 国产成人av免费观看 | 久久综合九色综合欧美狠狠 | 少女韩国电视剧在线观看完整 | 亚洲国产av精品一区二区蜜芽 | 日本在线高清不卡免费播放 | 自拍偷自拍亚洲精品被多人伦好爽 | 999久久久国产精品消防器材 | 亚洲色欲色欲欲www在线 | 扒开双腿疯狂进出爽爽爽视频 | 国产农村乱对白刺激视频 | 人妻中文无码久热丝袜 | 夜夜夜高潮夜夜爽夜夜爰爰 | 精品亚洲成av人在线观看 | 97se亚洲精品一区 | 久久99精品国产.久久久久 | 人妻体内射精一区二区三四 | 玩弄中年熟妇正在播放 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲国产欧美在线成人 | 一本久久伊人热热精品中文字幕 | 东京热男人av天堂 | 亚洲伊人久久精品影院 | 国产人妻人伦精品1国产丝袜 | 东京热无码av男人的天堂 | 成人三级无码视频在线观看 | 九月婷婷人人澡人人添人人爽 | 久久国产自偷自偷免费一区调 | 一个人看的www免费视频在线观看 | 亚洲成a人片在线观看无码3d | 久久zyz资源站无码中文动漫 | 人妻熟女一区 | 少妇无码av无码专区在线观看 | 在线 国产 欧美 亚洲 天堂 | 亚洲精品中文字幕久久久久 | 亚洲中文字幕va福利 | 18禁黄网站男男禁片免费观看 |