• <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>
            隨筆 - 8, 文章 - 0, 評論 - 17, 引用 - 0
            數據加載中……

            2009年4月2日

            iPhone手機開發平臺入門介紹和教程

            1. iPhone手機介紹
            首先需要了解和破解iPhone手機,下面一個帖子介紹很詳細:
            iPhone最權威 [入門] [破解] [掃盲] [資源] [修磚] 總匯帖
            http://www.weiphone.com/thread-41690-1-1.html

            iPhone手機手冊的中文翻譯
            http://down.tgbus.com/soft/16820.shtml


            2. Unix常見命令
            iPhone手機的操作系統是Mac OS X,內核是unix,所以可以iPhone手機上運行unix命令。
            http://www.weiphone.com/thread-15894-1-1.html

            3. Windows平臺上iPhone開發環境搭建
            見筆者的文章《Windows平臺上iPhone基于cygwin開發環境的搭建方法》,文件鏈接:
            http://canco.javaeye.com/admin/blogs/199106

            4. Toolchain和iPhone SDK
            Toolchain與官方iPhone SDK的比較請見文章:
            《比較官方iPhone SDK和開源工具鏈》,文章鏈接:http://www.cocoachina.com/index.php/archives/cocoachina_149.html
            iPhone SDK介紹和分析
            見西西河的AllenKids先生的2篇文章:
            iPhoneSDK觀察 - 舞姿飄忽,蘋果的探戈
            http://www.20ju.com/content/V19377.htm
            iPhone SDK 觀察二:舞臺寬廣,才能跳得歡暢
            http://www.cnbeta.com/articles/55055.htm

            iPhone SDK, Toolchain, Windows Mobile, SymbianOS S60的比較
            http://www.rsslite.com/post/1889.html



            iPhone用戶界面指導原則
            http://www.20ju.com/content/V22381.htm

            5. iPhone開發語言:Objective-C
            iPhone原生程序開發語言主要是用Objective-C語言,如果你熟悉C/C++語言,則能很快掌握Objective-C。Objective-C語言主要要理解可變參數,Categories, Posing, Protocols等特性。
            Objective-C初學者指南(繁體)
            http://www.otierney.net/objective-c.html.zh-tw.big5Objective-C語法快速參考
            http://www.cocoachina.com/index.php/archives/cocoachina_122.html
            Learn Objective-C
            http://cocoadevcentral.com/d/learn_objectivec/

            The Objective-C 2.0 Programming Language
            http://developer.apple.com/iphone/(注:需要注冊為apple會員才可以下載)

            6. iPhone開發書籍、文章和源代碼
            由iPhone開發和破解領路人Jonathan Zdziarski著作,最最重要、最值得推薦和唯一的開發書籍《iPhone Open Application Development》,可通過google下載電子版。


            Creating an iPhone Application
            iPhone OS Overview
            iPhone OS Programming Guide
            iPhone Human Interface Guidelines
            Cocoa Fundamentals Guide
            http://developer.apple.com/iphone/(注:需要注冊為apple會員才可以下載)


            Lucas Newman 的18頁iPhone開發PDF教學
            http://lucasnewman.com/phonedev.pdf

            學習怎樣在 iPhone/iPod Touch 上開發自制遊戲全記錄
            http://www.weiphone.com/thread-81192-1-2.html

            CocoaChina整理的開源iPhone程序不完全列表
            http://www.cocoachina.com/index.php/archives/cocoachina_143.html

            幾個源碼例子
            http://lucasnewman.com/phonedemos.zip



            7. iPhone論壇和網站
            平果開發中文站-最好的中文iPhone開發網站!
            http://www.cocoachina.com/

            蘋果官方的開發網站:
            http://developer.apple.com/iphone/

            Weiphone
            http://www.weiphone.com/index.php

            蘋果fans成立的網站:
            http://apple4.us/

            posted @ 2009-04-02 22:55 YG 閱讀(927) | 評論 (1)編輯 收藏

            2008年12月31日

            The Standard C Library

                 摘要: The Standard C Library --------------經典的基礎 C的標志庫函數是學習和使用C語言的基礎,是編寫經典C程序的基礎,是學習其他計算機知識的基礎.C標志庫中一共包含了15個頭文件: <assert.h> <ctype.h> <stdio.h> <stdlib.h> <string.h> <li...  閱讀全文

            posted @ 2008-12-31 13:38 YG 閱讀(735) | 評論 (0)編輯 收藏

            ACE在linux下的安裝

            本文詳細描述了在Linux操作系統上安裝和配置“自適應通信環境(ACE)”的過程和注意事項。zCkLinux聯盟

            文中的描述基于RedHat Linux 9操作系統和ACE 5.4版zCkLinux聯盟

            準備工作:zCkLinux聯盟

            1.確保你的Linux操作系統的開發環境(gcc、make……)是完整且可用的。zCkLinux聯盟

            2.在安裝ACE的過程中,可能需要root權限,因此確保你擁有root帳戶的密碼。zCkLinux聯盟

            3.對于典型的Redhat9系統,autoconf程序的版本可能過低,你需要首先升級它。zCkLinux聯盟

               升級的步驟如下:zCkLinux聯盟

            1. 在控制臺中輸入 autoconf -V,查看你的autoconf程序的版本
            2. 如果低于2.57g,你需要到http://www.gnu.org/software/autoconf/去下載最新版本的autoconf程序,目前autoconf程序的版本是2.59
            3. 根據tarball中的安裝說明,編譯并安裝升級autoconf程序

             

            開始安裝:zCkLinux聯盟

            經過上面的準備工作,現在你已經具備了安裝ACE的條件。下面開始正式的安裝工作。zCkLinux聯盟

            1. 首先確定ACE的安裝路徑,并建立相應的目錄。zCkLinux聯盟

               

              這里,我們把ACE安裝在/home/zhc/ace/的目錄下,先執行zCkLinux聯盟

              mkdir /home/zhc/ace

            2. 然后將獲得的ACE源代碼包解至該目錄下。zCkLinux聯盟

               

              tar zxvf ACE-5.4.tar.gz /home/zhc/ace

            3. 這時,在ace的目錄下會建立一個名為ACE_wrappers的子目錄,ACE所有的源代碼、工具、和例子都在這個目錄中。zCkLinux聯盟

               

              先進入該目錄,執行zCkLinux聯盟

              cd /home/zhc/ace/ACE_wrapperszCkLinux聯盟

              然后建立一個子目錄,用于存放ACE編譯后的目標文件zCkLinux聯盟

              mkdir buildzCkLinux聯盟

              cd build

            4. 接著,執行configure腳本,檢查你的系統環境,配置并生成適合你的系統的Makefile文件。zCkLinux聯盟

               

              在執行configure腳本時,可以加入許多配置選項,其詳細說明可以參看ACE_wrappers目錄下的ACE-INSTALL.html文件,zCkLinux聯盟

              對于Redhat9系統來說,不必加任何參數,ACE就可以很好的工作了。zCkLinux聯盟

              ../configure

            5. 在漫長的檢查和配置之后,如果沒有什么問題,你就可以開始編譯了。zCkLinux聯盟

               

              這一步很簡單,執行zCkLinux聯盟

              makezCkLinux聯盟

              然后,泡一杯茶,靜靜的等待就行了。

            6. 如果編譯順利的通過(通常都會是這樣的),那么恭喜你,你已經成功了一大半了,下面要做的僅僅是以些配置工作而已。zCkLinux聯盟

               

              接下來的工作是安裝,這一步是可選的,目的是把編譯生成的ACE的庫文件、頭文件和手冊頁等安裝到/usr/local的相應目錄中去,為了今后使用的方便,我建議你還是進行這一步,執行zCkLinux聯盟

              suzCkLinux聯盟

              root's passwordzCkLinux聯盟

              make install

            7. 安裝之后,我們就可以進行最后的配置工作了。zCkLinux聯盟

               

              首先設置環境變量ACE_ROOT,執行zCkLinux聯盟

              setenv ACE_ROOT /home/zhc/ace/ACE_wrapperszCkLinux聯盟

              注意其中的路徑要根據你的實際情況而定zCkLinux聯盟

              如果你不想每次都手工設定路徑,可以編輯你的bash的配置文件,執行zCkLinux聯盟

              cdzCkLinux聯盟

              vi .bash_profilezCkLinux聯盟

              在其中填加如下兩行zCkLinux聯盟

              ACE_ROOT=/home/work/research/ace/ACE_wrapperszCkLinux聯盟

              export ACE_ROOT

            8. 然后,在$ACE_ROOT/ace目錄中創建一個名為config.h的文件,在其中包含如下一行zCkLinux聯盟

               

              #include "ace/config-linux.h"zCkLinux聯盟

              或者,簡單起見,你也可以直接建立一個指向config-linux.h的符號鏈接,執行zCkLinux聯盟

              ln -s config-linux.h config.h

            9. 同樣,在$ACE_ROOT/include/makeinclude目錄中創建一個名為platform_macros.GNU的文件,在其中包含如下一行zCkLinux聯盟

               

              include $(ACE_ROOT)/include/makeinclude/platform_linux.GNUzCkLinux聯盟

              或者,簡單起見,你也可以直接建立一個指向platform_linux.GNU的符號鏈接,執行zCkLinux聯盟

              ln -s platform_linux.GNU platform_macros.GNU

            10. 最后一步,設置環境變量LD_LIBRARY_PATH,執行zCkLinux聯盟

               

              setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$ACE_ROOT/lib:zCkLinux聯盟

              /usr/local/lib:$LD_LIBRARY_PATHzCkLinux聯盟

              或者在~/.bash_profile文件中添加如下兩行zCkLinux聯盟

              LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:zCkLinux聯盟

              /usr/local/lib:$LD_LIBRARY_PATHzCkLinux聯盟

              export LD_LIBRARY_PATH

             

            安裝完成:zCkLinux聯盟

            經過上面的步驟,ACE已經安裝到了您的系統上了,下面我們將編譯并執行ACE的例程以驗證我們的工作。zCkLinux聯盟

            這里我們以《C++網絡編程,卷一》所帶的例子為例。zCkLinux聯盟

            1. 進入例程目錄,執行zCkLinux聯盟

               

              cd $(ACE_ROOT)/examples/C++NPv1

            2. 編譯例子程序,執行zCkLinux聯盟

               

              makezCkLinux聯盟

              如果前面的安裝和配置正確,很快就能夠得到編譯后的例子程序。

            3. 分別執行一個服務器程序(隨便哪一個都行)和一個客戶端程序(Logging_Client),如果程序運行正確,說明前面的安裝和配置成功,下面你就可以開始你的ACE學習之旅了

             

            補充

             

            下載ace 5.6
            在根目錄下建立一個文件夾
            mkdir /ace
            把下載的ace包移過去,解壓得到一個文件夾ACE_wrappers
            然后進入這個文件夾,看看里面的readme就可以曉得,linux下如何編譯和安裝
            網上很多人說要建立一個config.h的文件,那是好多年前的老皇歷了,readme里面沒有說要建立這么個玩意,那就不建立。
            直接進入主題,編譯:
            cd  /ace/ACE_wrappers
            mkdir build
            cd build
            ../configure 我們使用默認的option
            make
            make install
            過程很快,然后我們進入到/usr/local目錄下,可以看到include里面有ace要用的頭文件,lib里面有ace要用的庫文件
            linux的庫文件 的搜索路徑如下:
            /usr/include
            /usr/local/include
            /usr/lib/gcc-lib/i386-linux/2.95.2/include
            /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3
            /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
            因此,我們不用設置ace的頭文件了。
            但是ace庫文件不是linux的自帶的默認的庫文件,因此我們使用的時候要帶上,而ace現在的庫文件并不是系統的,先看一下默認的:
             默認的動態庫搜索路徑/lib和/usr/lib
            我們把ace所在的庫文件路徑添加進去:
            一:
            在/etc/bashrc中加入:
            export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
            重啟
            二:
            打開/etc/ld.so.conf
            本來內容是如下:
            include ld.so.conf.d/*.conf
            我們添加ace路徑后變成如下
            include ld.so.conf.d/*.conf
            /usr/local/lib
            保存退出!
            然后執行    ldconfig
            就可以了。
            下面我們弄一個簡單的ace程序:
            /////////////////////////hello.cpp
            #include "ace/OS.h"
            #include "ace/Log_Msg.h"
             
            int main (int argc, char *argv[])
            {
                      ACE_DEBUG((LM_DEBUG,"Hello, ACE!\n"));
                      ACE_OS::exit(1);
                      return 0;
            }

            這么就不寫makefile了,直接用g++編譯就是了。
            編譯
            g++ hello.cpp -o hello -lACE
            運行:
            ./hello
            結果:
            [root@BTazuo ~]# ./hello
            Hello, ACE!

             

            posted @ 2008-12-31 13:37 YG 閱讀(891) | 評論 (0)編輯 收藏

            2008年12月30日

            'TryEnterCriticalSection' 錯誤

              隔了一段時間后來重新編譯原本還可以編譯運行的程序,在DEBUG下還是正常,但是換成release后就出現了下載問題
            'TryEnterCriticalSection' : is not a member of '`global namespace''


            解決方法:
            處理辦法:在stdafx.h或程序開始處中增加如下宏定義,即可。
            用于指明WINDOWS系統版本。

            //for use TryEnterCriticalSection
            #ifndef _WIN32_WINNT
            # define _WIN32_WINNT 0x500
            #endif

            posted @ 2008-12-30 12:49 YG 閱讀(1477) | 評論 (0)編輯 收藏

            linux配置問題匯總

            》 掛載新區步驟
                  加了新硬盤后,用Mount掛載上去總是失敗,原來要先格式化才能再掛載上去,方法如下:

            1、mkfs.ext3 -b 1024 -i 1024 /dev/ram5  //用內存虛擬硬盤進行格式化,定義inode號與block size號一致,對小文件來說更優。整個系統所能存儲的文件數較少。

            2、mkfs.ext3 -b 1024 -i 4096 /dev/ram5  //改變block size,使4個block與1個inode相對應,這種好處是對大文件來說節省空間,節省inode數量,整個系統所能存儲的文件數較多。

            3、mkdir /mnt/mem5   //創建掛裝目錄

            4、mount /dev/ram5 /mnt/mem5   將虛擬的分區掛載到mem5目錄中

            5、tune2fs -l /dev/ram5  //驗證當前磁盤格式


            Others
            1、mkfs.ext2 -b 1024 -i 1024 /dev/ram6  //創建ext2格式分區

            2、tune2fs -j /dev/ram5  //改變分區

            3、tune2fs -l /dev/ram5 //驗證

            》刪除無效硬盤懸掛區

            vi /ect/fstab

            》 顯示亂碼
            修改/etc/sysconfig/i18n  文件
            把里面的LANG="en_US"改成 GB2312就可以了

            》網絡配置
            1)臨時修改
            #IP配置,包括子網掩碼,看情況修改eth0和192.168.1.22

            ifconfig   eth0   192.168.1.22   netmask   255.255.255.0   up

            #網關修改   ,看情況修改192.168.1.2

            route   add   default   gw   192.168.1.2

            2)永久修改
             修改配置:/etc/sysconfig/network-scripts/ifcfg-eth0
              
              DEVICE=eth0
              NOBOOT=yes
              BOOTPROTO=static
              IPADDR=192.168.1.9
              NETMASK=255.255.255.0
              GATEWAY=192.168.1.1
            2: DNS   /etc/resolv.conf
               支持三個
            nameserver 192.168.1.1


            》環境變量
            1:當前目錄
            export LD_LIBRARY_PATH=$(pwd)

            export PATH=/xxxxxx/:$PATH

            2:找不到so庫問題
            error while loading shared libraries
            在/etc/ld.so.conf加入所在庫的路徑,存檔后執行「/sbin/ldconfig –v」。

            "."代表當前路徑

            posted @ 2008-12-30 11:48 YG 閱讀(227) | 評論 (0)編輯 收藏

            2008年9月9日

            [游戲開發]工廠模式

            游戲編程是我業余的愛好,也可以提高對編程的興趣,每當我有時間的時候就會編寫游戲,基于圖片的問題所以首選小游戲。這是我畢業后第二款小游戲,相比上一款充分的運用了面向對象的技術,讓我享受與不斷做類的完善,特別提出的是使用遞歸技術使得算法更加簡潔確實是個很不錯的技術,比如:游戲中的地圖整行消除判斷以及消除。

            目前的設計情況如下:
            (有寫沒必要的函數省略了,初次使用UML圖)

            此貼主要是想探討類的設計,標題上寫了工廠模式,這里只是簡單的把UI創建放到另外一個地方罷了,嚴格來說應該不算是什么工廠,但是主要是代碼
            易讀維護性高就可以了.開發環境:VS2005,WIN32、 C++、DX9


            如果要增加其他按鈕只要繼承ImageUI,和實現基類的存虛擬函數就可以。基類的事件觸發如下代碼。

            PUG_BTN_STAT CImageUI::OnEven(UINT msg, WPARAM wParam, LPARAM lParam)
            {
                POINTS xy;
                xy 
            = MAKEPOINTS(lParam);
                POINT xy2;
                xy2.x 
            = xy.x;
                xy2.y 
            = xy.y;

                
            switch(msg)
                {      
                
            case WM_MOUSEMOVE:
                       {
                        
            if(PtInRect(&_displaySize,xy2))
                        {
                            OnPass();
                            
            return PASS;
                        }
                       }
                       
            break;
                  
            case WM_LBUTTONDOWN:
                       {
                        
            if(PtInRect(&_displaySize,xy2))
                        {
                            OnClick();
                            
            return ONCLICK;
                        }
                       }
                       
            break;
                  
            case WM_LBUTTONUP:
                      {
                        
            if(PtInRect(&_displaySize,xy2))
                        {
                            OnClickOut();
                            
            return ONCLICKOUT;
                        }
                      }
                      
            break;
                }

                OnPassOut();
                
            return COMMAND;
            }


            游戲圖片如下:




            游戲下載:
            /Files/YGFaith/elsfkGame.rar

            posted @ 2008-09-09 23:37 YG 閱讀(1637) | 評論 (0)編輯 收藏

            2008年8月29日

            觀察者模式(Subject/Observer)

            定義:對象間的一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并被自動更新。 

            功能:搜索數據庫,當有需要公布的數據將其用各種方式發送出去。
             
            觀察者模式無疑能很好的做到上面的要求,無論要多少種方式,只要增加多個繼承之ITransfer接口的派生類即可,有很好的維護性。

            以下是實際的應用.



            //接口
            //ITransfer.h
            #pragma once

            class ITransfer
            {
            public:
                
            virtual bool DoTransfer(...= 0;
            }
            ;


            //FetionTransfer.h
            #pragma once
               #include "Transfer.h"
            class CFetionTransfer:public ITransfer
            {
            public:
                CFetionTransfer();
                
            ~CFetionTransfer();
                
            bool DoTransfer(...);
            private:
                ......
            }
            ;


            //MailTransfer.h
            #pragma once
               #include "Transfer.h"
            class CMailTransfer: public ITransfer
            {
            public:
                CMailTransfer();
                
             ~CMailTransfer();
                
            bool DoTransfer(...);
            private:
            ....
            }
            ;


            //TransferPool.h
            #pragma once

            #include 
            "Transfer.h"
            #include 
            <vector>
            using namespace std;

            class CTransferPool
            {
            private:
                vector
            <ITransfer*> vo;
            public:
                
            virtual ~CTransferPool();

                
            void Login(ITransfer* po);

                
            void Logout(ITransfer* po);
               
            //向各成員廣播消息
                void Notify(...);
            }
            ;

            //TransferPool.cpp
            #include "TransferPool.h"

            CTransferPool::
            ~CTransferPool()
            {
                vector
            <ITransfer*>::iterator vi = vo.begin();
                
            for (; vi != vo.end(); vi++)
                
            {
                             if(*vi)
                                {
                                    delete *vi;
                                     *vi = NULL;
                                }

                }

            }


            void CTransferPool::Login(ITransfer* po)
            {
                vo.push_back(po);
            }


            void CTransferPool::Logout(ITransfer* po)
            {
                vector
            <ITransfer*>::iterator vi = vo.begin();
                
            for (; vi != vo.end(); vi++)
                
            {
                    
            if (*vi == po)
                        vo.erase(vi);
                }

            }


            void CTransferPool::Notify(...)
            {
                vector
            <ITransfer*>::iterator vi = vo.begin();
                
            for (; vi != vo.end(); vi++)
                
            {
                    ITransfer 
            *= *vi;
                        
                    (
            *vi)->DoTransfer(...);
                }

            }


            void main
            {
                CTransferPool
            *m_pTranPool= new CTransferPool();
                
                CFetionTransfer 
            *m_pFetionTran = new CFetionTransfer(...);
                CMailTransfer 
            *m_pMailTran = new CMailTransfer(...);

                m_pTranPool
            ->Login(m_pFetionTran);
                m_pTranPool
            ->Login(m_pMailTran);
                   
                    
            while(需要發送消息)
                    
            {
                        m_pTranPool
            ->Notify();
                    }


                    
            //釋放
                      if(m_pTranPool)
                    
            {
                        delete m_pTranPool;
                        m_pTranPool 
            = NULL;
                    }


            }

            posted @ 2008-08-29 15:49 YG 閱讀(1789) | 評論 (5)編輯 收藏

            2008年8月21日

            求兩個數中最大值,不用判斷語句。

             

            #include "iostream.h" 
            #include 
            "math.h" 

            #define bits ( sizeof( int ) * 8 - 1 ) 
            static int CheckFlag( int x, int y )  
            {  
            int s1 = x >> bits;  
            int s2 = y >> bits;  
            s1
            =abs(s1); 
            s2
            =abs(s2); 
            return ( s1 * 2 + s2 );  
            }  
            static int SameSign( int Flag, int x, int y ) 
            {  
            int t[2= { x, y }; 
            long z = x - y; 
            int s = z >> (bits+32);  
            s
            =abs(s); 
            return t[s]; 
            }  
            static int DiffSign(int Flag,int x,int y) 比較 
            {  
            int t[2= { x, y };  
            return t[Flag - 1]; 

            static int (*FuncList[4])(int Flag,int x,int y)={SameSign, DiffSign, DiffSign, SameSign};  
            static int Max( int x, int y )  
            {  
            int Flag = CheckFlag( x, y );  

            return (*FuncList[Flag])(Flag,x,y);  

            void main()  

            int x,y,z; 
            cout
            <<"請輸入整型x的值(-32768~32767):"
            cin
            >>x; 
            cout
            <<"請輸入整型y的值(-32768~32767):"
            cin
            >>y; 
            z
            =Max(x,y); 
            cout
            <<"最大的數:"<<z<<endl; 
            }  



            #define bits ( sizeof( int ) * 8 - 1 ) //移動的位數
            static int SameSign( int Flag, int x, int y ) //函數功能:x,y同號時的比較
            static int DiffSign(int Flag,int x,int y) //函數功能:x,y異號時的比較
            static int (*FuncList[4])(int Flag,int x,int y)={SameSign, DiffSign, DiffSign, SameSign}; //定義函數指針數組
            static int Max( int x, int y ) //函數功能:求最大值

            static int CheckFlag( int x, int y ) //函數功能:檢測x,y的符號
            /*
            Flag 的值
            + +:0
            - +;1
            + 1:2
            - -:3
            */

            posted @ 2008-08-21 14:20 YG 閱讀(3182) | 評論 (11)編輯 收藏

            日韩影院久久| 欧美黑人激情性久久| 国产精品美女久久久久网| 久久亚洲高清观看| 亚洲国产成人久久一区久久| 久久精品免费一区二区| 国产精品久久久99| 亚洲熟妇无码另类久久久| 国内精品欧美久久精品| 国产亚洲美女精品久久久2020| 国产午夜久久影院| 无码人妻少妇久久中文字幕蜜桃 | 欧美精品一区二区久久| 久久香综合精品久久伊人| 久久久久久久综合综合狠狠| 久久久久亚洲AV无码网站| 欧美色综合久久久久久| 蜜桃麻豆www久久| 久久精品国产亚洲AV大全| 久久天天躁狠狠躁夜夜avapp| 国产99久久久国产精品~~牛| 久久香蕉国产线看观看精品yw| 一本色道久久综合狠狠躁篇 | 色8激情欧美成人久久综合电| 国产精品久久久天天影视| 一本色综合网久久| 99精品国产99久久久久久97| 亚洲精品97久久中文字幕无码| 久久精品女人天堂AV麻| 国产亚州精品女人久久久久久| 久久免费高清视频| 91超碰碰碰碰久久久久久综合| 久久久国产精品网站| 久久99毛片免费观看不卡| 国产精品99久久99久久久| 久久久久99精品成人片直播| 狠狠色婷婷久久一区二区三区| 成人免费网站久久久| 国产亚洲欧美成人久久片| 久久综合综合久久狠狠狠97色88| 99久久精品久久久久久清纯|