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

醬壇子

專注C++技術 在這里寫下自己的學習心得 感悟 和大家討論 共同進步(歡迎批評?。。。?/p>

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  66 Posts :: 16 Stories :: 236 Comments :: 0 Trackbacks

公告

王一偉 湖南商學院畢業 電子信息工程專業

常用鏈接

留言簿(19)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 389615
  • 排名 - 64

最新隨筆

最新評論

閱讀排行榜

評論排行榜

//========================================================================
//TITLE:
//??? MultiByteToWideChar和WideCharToMultiByte用法詳解
//AUTHOR:
//??? norains
//DATE:
//??? 第一版:Monday? 25-December -2006
//??? 增補版:Wednesday 27-December -2006
//??? 修訂版:Wednesday 14-March-2007 (修正之前的錯誤例子)
//Environment:
//? EVC4.0 + Standard SDK
//========================================================================
?
1.使用方法詳解

? 在本文開始之處,先簡要地說一下何為短字符和寬字符.
? 所謂的短字符,就是用8bit來表示的字符,典型的應用是ASCII碼.而寬字符,顧名思義,就是用16bit表示的字符,典型的有UNICODE.關于windows下的ASCII和UNICODE的更多信息,可以參考這兩本經典著作:《windows 程序設計》,《windows 核心編程》.這兩本書關于這兩種字符都有比較詳細的解說.
?
? 寬字符轉換為多個短字符是一個難點,不過我們只要掌握到其中的要領,便可如魚得水.
? 好吧,那就讓我們開始吧.
?
? 這個是我們需要轉化的多字節字符串: ?
? char sText[20] = {"多字節字符串!OK!"};
?
? 我們需要知道轉化后的寬字符需要多少個數組空間.雖然在這個里程里面,我們可以直接定義一個20*2寬字符的數組,并且事實上將運行得非常輕松愉快.但假如多字節字符串更多,達到上千個乃至上萬個,我們將會發現其中浪費的內存將會越來越多.所以以多字節字符的個數的兩倍作為寬字符數組下標的聲明絕對不是一個好主意.
? 所幸,我們能夠確知所需要的數組空間.
? 我們只需要將MultiByteToWideChar()的第四個形參設為-1,即可返回所需的短字符數組空間的個數:
? DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, sText, -1, NULL, 0);
?
? 接下來,我們只需要分配響應的數組空間:
? wchar_t *pwText;
? pwText = new wchar_t[dwNum];
? if(!pwText)
? {
?? delete []pwText;
? }
?
? 接著,我們就可以著手進行轉換了.在這里以轉換成ASCII碼做為例子:
? MultiByteToWideChar (CP_ACP, 0, psText, -1, sText, dwSize);
?
? 最后,使用完畢當然要記得釋放占用的內存:
? delete []psText;
?
?
? 同理,寬字符轉為多字節字符的代碼如下: ?
? wchar_t wText[20] = {L"寬字符轉換實例!OK!"};
? DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);
? char *psText;
? psText = new char[dwNum];
? if(!psText)
? {
?? delete []psText;
? }
? WideCharToMultiByte (CP_OEMCP,NULL,lpcwszStr,-1,psText,dwNum,NULL,FALSE);
? delete []psText;
?
?? 如果之前我們已經分配好空間,并且由于字符串較短,可以不理會浪費的空間,僅僅只是想簡單地將短字符和寬字符相互轉換,那有沒有什么簡便的方法呢?
?? WIN32 API里沒有符合這種要求的函數,但我們可以自己進行封裝:
??? ?
? //-------------------------------------------------------------------------------------
? //Description:
? // This function maps a character string to a wide-character (Unicode) string
? //
? //Parameters:
? // lpcszStr: [in] Pointer to the character string to be converted
? // lpwszStr: [out] Pointer to a buffer that receives the translated string.
? // dwSize: [in] Size of the buffer
? //
? //Return Values:
? // TRUE: Succeed
? // FALSE: Failed
? //
? //Example:
? // MByteToWChar(szA,szW,sizeof(szW)/sizeof(szW[0]));
? //---------------------------------------------------------------------------------------
? BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize)
? {
??? // Get the required size of the buffer that receives the Unicode
??? // string.
??? DWORD dwMinSize;
??? dwMinSize = MultiByteToWideChar (CP_ACP, 0, lpcszStr, -1, NULL, 0);
?
??? if(dwSize < dwMinSize)
??? {
???? return FALSE;
??? }
?
?? ?
??? // Convert headers from ASCII to Unicode.
??? MultiByteToWideChar (CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize); ?
??? return TRUE;
? }
?
? //-------------------------------------------------------------------------------------
? //Description:
? // This function maps a wide-character string to a new character string
? //
? //Parameters:
? // lpcwszStr: [in] Pointer to the character string to be converted
? // lpszStr: [out] Pointer to a buffer that receives the translated string.
? // dwSize: [in] Size of the buffer
? //
? //Return Values:
? // TRUE: Succeed
? // FALSE: Failed
? //
? //Example:
? // MByteToWChar(szW,szA,sizeof(szA)/sizeof(szA[0]));
? //---------------------------------------------------------------------------------------
? BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize)
? {
?? DWORD dwMinSize;
?? dwMinSize = WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);
?? if(dwSize < dwMinSize)
?? {
??? return FALSE;
?? }
?? WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,lpszStr,dwSize,NULL,FALSE);
?? return TRUE;
? }
?
?
? 使用方法也很簡單,示例如下:
? wchar_t wText[10] = {L"函數示例"};
? char sText[20]= {0};
? WCharToMByte(wText,sText,sizeof(sText)/sizeof(sText[0]));
? MByteToWChar(sText,wText,sizeof(wText)/sizeof(wText[0]));
?
? 這兩個函數的缺點在于無法動態分配內存,在轉換很長的字符串時可能會浪費較多內存空間;優點是,在不考慮浪費空間的情況下轉換較短字符串非常方便.

?
2.MultiByteToWideChar()函數亂碼的問題

? 有的朋友可能已經發現,在標準的WinCE4.2或WinCE5.0 SDK模擬器下,這個函數都無法正常工作,其轉換之后的字符全是亂碼.及時更改MultiByteToWideChar()參數也依然如此.
? 不過這個不是代碼問題,其結癥在于所定制的操作系統.如果我們定制的操作系統默認語言不是中文,也會出現這種情況.由于標準的SDK默認語言為英文,所以肯定會出現這個問題.而這個問題的解決,不能在簡單地更改控制面板的"區域選項"的"默認語言",而是要在系統定制的時候,選擇默認語言為"中文".
? 系統定制時選擇默認語言的位置于:
? Platform -> Setting... -> locale -> default language ,選擇"中文",然后編譯即可.
posted on 2007-03-21 12:01 @王一偉 閱讀(136961) 評論(41)  編輯 收藏 引用

Feedback

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2007-04-02 10:16 宋鵬
哈哈,正需要  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2007-07-11 21:12 lbblscy
太感謝了!  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2007-08-05 09:34 ishou
這里應該是多余的:

if(!pwText)
{
delete []pwText;
}

  回復  更多評論
  

# qiqhuzoo 2008-04-07 05:22 qiqhuzoo
azqemfyd http://dokcizxw.com sdatrpbp wtbjzleo <a href="http://wrnapufm.com">jwskvahr</a> [URL=http://qpmjqsuu.com]zfuuhvkk[/URL]   回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-04-10 10:06 yh
為什么和這篇
http://blog.csdn.net/norains/archive/2006/12/25/1461174.aspx
內容相同?到底誰是原創,誰是抄襲?
  回復  更多評論
  

# zdxlkvbu 2008-04-14 06:47 zdxlkvbu
datsgwxb http://vnympqjy.com whwjsawt mgbqlrbr <a href="http://flnxgxli.com">kbwuugax</a> [URL=http://rspeweyg.com]wplugtld[/URL]   回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-05-22 11:09 路人甲
copy別人的,至少自己看一遍,跑一遍...

下面這段能跑么...后一個MultiByteToWideChar 參數都錯了..
DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, sText, -1, NULL, 0);

接下來,我們只需要分配響應的數組空間:
wchar_t *pwText;
pwText = new wchar_t[dwNum];
if(!pwText)
{
delete []pwText;
}

接著,我們就可以著手進行轉換了.在這里以轉換成ASCII碼做為例子:
MultiByteToWideChar (CP_ACP, 0, psText, -1, sText, dwSize);

最后,使用完畢當然要記得釋放占用的內存:
delete []psText;  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-06-05 14:51 fff
不知,是不是垃圾
這個片文章在這里也有
http://blog.csdn.net/norains/archive/2006/12/25/1461174.aspx
不知那個是原創,不知哪個shabi 偷別人的文章,不注明 “引用”  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 [未登錄] 2008-09-02 11:10 l
Thank you  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-10-23 09:59 qiuqiu_emb
//AUTHOR:
// norains

看看最前面的標識就知道,原文照搬過來的!!  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-10-23 10:01 qiuqiu_emb
都是互相抄襲的,哪個有那么多時間和精力花在寫這個上面  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-10-23 10:21 FEIM Studios
FreeEIM 發GSM短信,用到此函數。  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-11-18 09:08 過客
何必在意是不是原創,對你有用就行@qiuqiu_emb
  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-12-11 10:41 hoodlum1980
請注意該函數的最后一個參數是指向BOOL類型的指針!所以文章里把最后一個參數寫為FALSE具有非常嚴重的誤導性,實際上這里寫為FALSE本質上就相當于寫為NULL。

希望樓主改正?。?!  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-12-11 10:42 hoodlum1980
@過客
我不同意你的觀點。如果是轉載的,就應該注明。這體現對原作者的尊重。也防止被誤認為是轉載者的文章,以免混淆來源。
  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2008-12-29 00:49 飛鴿傳書
哇,終于被我給找到了。  回復  更多評論
  

# yajenine 2009-08-15 14:13 yajenine
Learning to live in the present moment is part of the path of joy.  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2009-08-20 22:27 快樂就好科技很快
我們只需要將MultiByteToWideChar()的第四個形參設為-1,即可返回所需的短字符數組空間的個數:
DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, sText, -1, NULL, 0);

短字節--》長字節

  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2009-08-20 22:35 快樂就好科技很快
錯誤百出,看的人要注意一下,  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 [未登錄] 2009-08-22 00:08 hdqqq
照著樓主的代碼,果然有問題,麻煩樓主以后寫代碼或者轉文章對讀者負責一下,最煩這種轉文章的,搞的搜索結果都一樣,都是轉帖的。  回復  更多評論
  

# xratdicg 2009-08-28 05:30 xratdicg
<a href="http://vqghhajj.com">lpxbgvzk</a> rqxgyfzj http://clqevfio.com bsnzaegb dyrfnmyy [URL=http://vwjxgmnh.com]qcmxlmsw[/URL]   回復  更多評論
  

# yhdlpifi 2009-08-31 20:36 yhdlpifi
<a href="http://rmsghert.com">chtzzeor</a> [URL=http://fznvrfev.com]ktnieivr[/URL] tlgpukqm http://kknylcom.com ewyyfaqt ixvorjpu   回復  更多評論
  

# 很汗 2009-09-09 09:11 beeboo
if(!pwText)
{
delete []pwText;
}
這樣寫是致命的  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2009-09-14 21:01 bob
@beeboo
這樣寫為什么是致命的呢?  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2009-10-22 17:02 李天王
@yh
這個已經不重要了,重要的是內容的確很不錯  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2010-03-19 14:47 @@
糟透了...根本不能跑~~  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2010-09-04 14:38 ss
@yh
看看時間就知道了。。。  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 [未登錄] 2010-09-17 10:44 sdf
非常非常的垃圾
抄襲別人的 也請你不要抄錯了好嗎????  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2011-04-15 12:50 ring03
thanks!  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2011-08-08 19:31 d
sha cha , 一堆錯誤  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2011-09-23 21:18 home loans
It is well known that cash makes us autonomous. But how to act when somebody doesn't have cash? The one way is to get the loans or credit loan.   回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 [未登錄] 2011-11-08 16:07 hello world
我們只需要將MultiByteToWideChar()的第四個形參設為-1,即可返回所需的短字符數組空間的個數: 
這個-1代表的含義讓程序自已判斷源串的大小,要得到空間的個數,實際上是要第5個參數,設為NULL,

windows 核心編程有,上面的這個例子,不求甚解。  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2012-03-16 09:18 song
代碼錯誤百出,真是誤人子弟  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2012-05-07 19:39 zxxxx
@快樂就好科技很快
同意,數組位置放錯位置了  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2012-07-20 19:25 飛飛龍
誤人子弟
int MultiByteToWideChar(
UINT CodePage, // code page
DWORD dwFlags, // character-type options
LPCSTR lpMultiByteStr, // string to map
int cbMultiByte, // number of bytes in string
LPWSTR lpWideCharStr, // wide-character buffer
int cchWideChar // size of buffer
);

int WideCharToMultiByte(
UINT CodePage, // code page
DWORD dwFlags, // performance and mapping flags
LPCWSTR lpWideCharStr, // wide-character string
int cchWideChar, // number of chars in string
LPSTR lpMultiByteStr, // buffer for new string
int cbMultiByte, // size of buffer
LPCSTR lpDefaultChar, // default for unmappable chars
LPBOOL lpUsedDefaultChar // set when default char used
);  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2012-08-30 09:51 111122
不是多余的, 只是delete[] pszText,不合適.@ishou
  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 [未登錄] 2013-04-28 14:26 張杰
歡迎加群 20072918 colorfire 請注明C++  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 [未登錄] 2013-08-16 13:42 111
錯誤百出  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2013-12-06 14:05 1231
你寫的文章就像牛屎 沒見過這么多錯誤的文章 完全看不懂 你是外星人?  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 2014-04-17 23:45 yellowtail
博主代碼有錯,轉換ascii那里,最后一個參數肯定是dwNum啊,
竟然寫成dwSize了,無語  回復  更多評論
  

# re: MultiByteToWideChar和WideCharToMultiByte用法詳解 [未登錄] 2015-06-19 22:30 sunny
看了前幾行,就已經一堆的錯誤,如想獲取緩沖區的長度,不是使第四個參數為-1,是最后一個參數為0,以下是百度百科的原話:
cchMultiByte:指定由參數lpMultiByteStr指向的字符串中字節的個數。如果lpMultiByteStr指定的字符串以空字符終止,可以設置為-1(如果字符串不是以空字符中止,設置為-1可能失敗,可能成功),此參數設置為0函數將失敗。
lpWideCharStr:指向接收被轉換字符串的緩沖區。
cchWideChar:指定由參數lpWideCharStr指向的緩沖區的寬字符個數。若此值為零,函數返回緩沖區所必需的寬字符數,在這種情況下,lpWideCharStr中的緩沖區不被使用。
此外還有一堆的變量名敲錯什么的,這樣的博文,真的還不如不寫,以免誤導別人!
  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品国产拍免费91在线| 国产精品久久久久天堂| 老司机精品久久| 欧美性猛交xxxx乱大交蜜桃| 免费在线国产精品| 久久综合激情| 模特精品在线| 男人的天堂亚洲在线| 久热成人在线视频| 久久亚洲国产精品一区二区 | 亚洲成人自拍视频| 亚洲欧洲日产国产综合网| 国产一区日韩一区| 国外成人免费视频| 亚洲激情综合| 一区二区三区久久网| 国产精品99久久久久久久女警| 在线一区二区视频| 羞羞答答国产精品www一本 | 欧美sm极限捆绑bd| 亚洲黄网站黄| 亚洲欧美视频在线观看| 欧美在线视频日韩| 欧美顶级大胆免费视频| 欧美日韩在线观看一区二区三区| 国产精品素人视频| 亚洲国产一区二区视频| 亚洲欧美自拍偷拍| 欧美v国产在线一区二区三区| 亚洲精品午夜| 一本色道久久综合亚洲精品不| 亚洲一级网站| 猛男gaygay欧美视频| 欧美午夜精品久久久久免费视| 国产欧美一区二区三区沐欲| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲区第一页| 男女激情视频一区| 亚洲狼人综合| 亚洲欧美激情一区| 亚洲图片欧美一区| 一片黄亚洲嫩模| 久久精品夜色噜噜亚洲aⅴ | 亚洲精品自在在线观看| 国产一区视频在线观看免费| 亚洲精品日韩精品| 久久精品综合| 亚洲伦理自拍| 久久免费视频观看| 国产精品网站视频| 亚洲茄子视频| 久久久免费精品| 亚洲特色特黄| 欧美连裤袜在线视频| 国外视频精品毛片| 午夜精品久久久久久久99热浪潮| 欧美福利在线| 久久久精品免费视频| 国产美女一区| 午夜精品美女自拍福到在线| 亚洲精品一区二区三区在线观看| 久久精品中文字幕一区二区三区 | 亚洲精品乱码| 免费久久久一本精品久久区| 午夜一区二区三视频在线观看 | 国产欧美亚洲一区| 亚洲午夜黄色| 99精品国产一区二区青青牛奶| 欧美aaa级| 亚洲国产天堂久久国产91| 美女国内精品自产拍在线播放| 亚洲一区在线直播| 国产精品一区在线观看| 亚洲欧美日韩国产综合在线| 在线一区二区三区四区五区| 国产精品成人免费| 亚洲影院在线| 午夜精品一区二区三区在线| 国产日产欧美一区| 久久免费黄色| 久久久夜色精品亚洲| 亚洲高清视频一区| 欧美a级大片| 欧美精品videossex性护士| 亚洲国产天堂久久综合网| 亚洲小说春色综合另类电影| 欧美在线视频导航| 国产专区欧美精品| 巨胸喷奶水www久久久免费动漫| 久久久91精品国产| 亚洲欧洲一区二区天堂久久| 亚洲精品小视频在线观看| 欧美日韩一区二区在线观看| 午夜精品免费在线| 久久av资源网站| 亚洲日本电影在线| 亚洲午夜激情| 影音先锋久久资源网| 亚洲电影免费观看高清| 欧美成人小视频| 一区二区三区色| 亚洲女优在线| 亚洲国产成人高清精品| 亚洲激情一区| 国产欧美精品一区二区色综合| 久久综合网络一区二区| 欧美阿v一级看视频| 亚洲欧美日韩国产综合| 久久亚洲私人国产精品va| 亚洲视频在线观看视频| 久久久久久一区| 亚洲欧美影院| 欧美激情视频在线播放| 国产精品国内视频| 亚洲电影免费| 国产综合久久| 亚洲一区二区三区在线视频| 好吊日精品视频| 一区二区三区高清在线| 亚洲欧洲精品一区二区三区| 香港成人在线视频| 一区二区三区四区五区精品| 久久激情视频免费观看| 在线视频日韩| 欧美阿v一级看视频| 久久影音先锋| 国产欧美一级| 欧美~级网站不卡| 久久精品一区二区三区不卡| 欧美日韩国产在线播放网站| 欧美成熟视频| 1000部国产精品成人观看| 香蕉久久一区二区不卡无毒影院| 国产精品对白刺激久久久| 亚洲黄色高清| 亚洲激情第一区| 久久婷婷丁香| 久久久久这里只有精品| 国产精品女人毛片| 亚洲午夜激情| 亚洲一区二区三区涩| 欧美日韩成人综合在线一区二区 | 你懂的一区二区| 国产婷婷成人久久av免费高清| 在线一区欧美| 亚洲欧美激情在线视频| 国产精品mm| 亚洲在线观看免费| 国产精品二区二区三区| 亚洲人成亚洲人成在线观看| 亚洲精品五月天| 欧美日韩播放| 一道本一区二区| 亚洲午夜激情| 亚洲欧洲另类| 久久久久久一区二区三区| 久久青草欧美一区二区三区| 国产精品乱码| 午夜伦欧美伦电影理论片| 久久久久国产一区二区三区| 久久成人免费电影| 美女黄色成人网| 亚洲精品一区二区三区婷婷月| 蜜臀av一级做a爰片久久| 亚洲电影免费| 亚洲永久免费| 国产免费成人在线视频| 香蕉国产精品偷在线观看不卡| 久久久久久综合| 亚洲精品久久久久久久久久久久久 | 欧美一区二区三区的| 久久这里有精品视频| 国产午夜精品久久久久久久| 亚洲精品网站在线播放gif| 一本色道久久综合亚洲精品小说| 欧美激情一区二区三区蜜桃视频| 日韩网站免费观看| 久久狠狠婷婷| 亚洲国产精品99久久久久久久久| 欧美国产丝袜视频| 午夜精品免费视频| 亚洲国产婷婷香蕉久久久久久99| 欧美日韩午夜在线| 欧美专区福利在线| 亚洲国产精品999| 欧美一区二区三区免费视| 亚洲国产99| 欧美午夜大胆人体| 久久久久久夜| 亚洲看片一区| 欧美伊久线香蕉线新在线| 亚洲国产精品久久久久秋霞影院| 国产精品成人一区二区| 亚洲欧美成人在线| 亚洲日本视频| 亚洲欧美三级在线| 国产亚洲欧美日韩日本| 亚洲视频网站在线观看| 久久精品人人做人人爽| 国产精品亚洲视频|