• <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>
            C++中的一粒沙子
            學習C++,做應(yīng)用開發(fā)
            posts - 10,comments - 22,trackbacks - 0
            ? 對于像我這樣剛接觸MFC不久的人來說,MFC中的數(shù)據(jù)類型的確讓人很頭痛,需要不時地去查找MSDN,找的多了,就記下來了一部分,于是貼出來,加強記憶!

            數(shù)據(jù)類型

            意義

            BOOL

            Boolean值(TRUE? or FALSE

            BSTR

            32-bit字符指針

            BYTE

            8-bit整數(shù),無正負號

            COLORREF

            32-bit數(shù)值,代表一個顏色值

            DWORD

            32-bit整數(shù),無正負號

            LONG

            32-bit整數(shù),有正負號

            LPARAM

            32-bit數(shù)值,作為窗口函數(shù)或callback函數(shù)的一個參數(shù)

            LPCSTR

            32-bit指針,指向一個常數(shù)字符串

            LPSTR

            32-bit指針,指向一個字符串

            LPCTSTR

            32-bit指針,指向一個常數(shù)字符串。此字符串可移植到Unicode

            LPTSTR

            32-bit指針,指向一個字符串。此字符串可移植到Unicode

            LPVOID

            32-bit指針,指向一個未指定類型的數(shù)據(jù)

            LPRESULT

            32-bit數(shù)值,作為窗口函數(shù)或callback函數(shù)的返回值

            UINT

            Win16中,16bit無正負號,Win32中,32bit無正負號

            WNDPROC

            32-bit

            WORD

            16bit整數(shù),無正負號

            WPARAM

            窗口函數(shù)的一個參數(shù),Win1616bitsWin3232bits

            ?

            ?

            MFC獨特的數(shù)據(jù)類型

            數(shù)據(jù)類型

            意義

            POSITION

            一個數(shù)值,代表collection對象(例如數(shù)組或鏈表)中的元素位置,常使用于MFC collection classes

            LPCRECT

            32-bit指針,指向一個不變的RECT結(jié)構(gòu)

            posted @ 2006-05-11 09:00 炙熱的太陽 閱讀(1988) | 評論 (4)編輯 收藏
            ???? Google又有新創(chuàng)意了(Google的每一款新產(chǎn)品都給我?guī)硪恍@喜?。?,他的名字叫g(shù)oogle網(wǎng)頁設(shè)計工具(Google Page Create),當然這仍然是google工程師利用它們的20%時間開發(fā)的,它給人的感覺就像是google做的一個blog。反正大家自己去看看吧!

            ???? google黑白報上的內(nèi)容:

            我們的目標是設(shè)計出我們的朋友和家人都喜歡而且易用的產(chǎn)品,經(jīng)過數(shù)月的努力,我們很高興 Google Page Creator(Google 網(wǎng)頁設(shè)計工具)正式加入 Google 實驗室了。Google 實驗室一向是 Google 科技試驗的園地,里面有我們覺得激動人心、但可能還沒完全成熟的產(chǎn)品。希望早期使用者給我們的產(chǎn)品提意見,幫助我們不斷完善改進。
            ?????
            ???? 鏈接地址:Google Page Creator(Google 網(wǎng)頁設(shè)計工具)。
            ??
            posted @ 2006-05-09 08:53 炙熱的太陽 閱讀(596) | 評論 (0)編輯 收藏
            約瑟夫(josephus)環(huán)是這樣的:假設(shè)有n個小孩坐成一個環(huán),假如從第一個小孩開始數(shù),如果數(shù)到m個小孩,則該小該離開,問最后留下的小孩是第幾個小孩?例如:總共有6個小孩,圍成一圈,從第一個小孩開始,每次數(shù)2個小孩,則游戲情況如下:
            ????小孩序號:1,2,3,4,5,6
            ????離開小孩序號:2,4,6,3,1
            最后獲勝小孩序號:5

            ????這樣的問題,我可以先考慮輸入的內(nèi)容有哪些?輸出內(nèi)容有哪些?
            ????????要求用戶輸入的內(nèi)容有:
            ?????????1、是小孩的個數(shù),也就是n的值;
            ?????????2、是離開小孩的間隔是多少?也就是m的值。
            ?????????3、所有小孩的序號要求存在數(shù)組或者鏈表中,所以需要定義一個指針,這里我們用數(shù)組來存放小孩的序號。
            ????????而要求輸出的內(nèi)容是:
            ?????????1、離開小孩的序號;
            ?????????2、最后留下小孩的序號;
            所以,根據(jù)上面分析輸入輸出參數(shù),我們考慮離開小孩的序號可以直接輸出,這樣可以使函數(shù)的復雜性。那么函數(shù)定義如下:
            //輸入?yún)?shù):
            //Childs為指向一個整形指針,指向保存小孩數(shù)組的首地址;
            //n為小孩的個數(shù);
            //m為數(shù)小孩的個數(shù);
            int?Josephus(int?*Child,int?n,int?m)
            {
            int?i=-1,j=0,k=1;
            //開始數(shù)小孩,只到留下一個小孩
            while(1)
            {
            //數(shù)m個小孩
            ??for(j=0;j<m;)
            ??
            {
            ???i
            =(i+1)%n;????//取下標加1的模,當i的值在0到n-1之間循環(huán)
            ???if(Child[i]!=-1)?//小孩在環(huán)中則數(shù)數(shù)有效;
            ????j++;
            ???
            ??}


            ???
            if(k==n)????????????????????????//如果k==n則表示,此時數(shù)組中只留下一個小孩,
            ????break;??????????????????????????//序號為Child[i]中的值,跳出循環(huán);
            ???cout<<Child[i]<<",";??//輸出離開小孩的序號;

            ???Child[i]
            =-1;???????????????//離開的小孩用-1作標記
            ???k=k+1;

            }

            cout
            <<endl;
            return(Child[i]);????//返回最獲勝小孩的序號
            }


            完整的程序,在VC6中調(diào)試通過。
            //-----------------------------------------------------------
            #include<iostream.h>
            int?Josephus(int?*Child,int?n,int?m);
            void?main()
            {
            int?*allChild,j,k,l;
            cin
            >>j>>k;

            ??
            if((allChild=?new?int[j])!=NULL)
            ??
            {
            ????
            for(l=0;l<j;l++)
            ????
            {??
            ?????cout
            <<l+1<<",";
            ?????allChild[l]
            =l+1;
            ????}

            ????cout
            <<endl;
            ????cout
            <<Josephus(allChild,j,k);
            ??}

            }


            int?Josephus(int?*Child,int?n,int?m)
            {
            int?i=-1,j=0,k=1;
            while(1)
            {
            ??
            for(j=0;j<m;)
            ??
            {
            ???i
            =(i+1)%n;????
            ???
            if(Child[i]!=-1)?
            ????j
            ++;
            ???
            ??}


            ???
            if(k==n)????????????????????????
            ????
            break;????????????????????????
            ???cout
            <<Child[i]<<",";??

            ???Child[i]
            =-1;?????????
            ???k
            =k+1;

            }

            cout
            <<endl;
            return(Child[i]);????
            }

            posted @ 2006-04-29 09:30 炙熱的太陽 閱讀(555) | 評論 (0)編輯 收藏
            呵呵,google有中文名字了,叫谷歌,很貼近中國大眾,這是不是意味著大眾搜索時代的到來呢?
            下面是谷歌的地址:
            http://googlechinablog.com/gugeflash.swf
            posted @ 2006-04-15 18:26 炙熱的太陽 閱讀(514) | 評論 (0)編輯 收藏
            ? 今天跟單位的人出去到郊外玩了一天,緊張了幾個星期的心情總算有一點放松,呵呵,過幾天項目就要驗收了,所以最近一直都在趕工作。玩了一天有點體會,那就是以后一定要加強體育鍛煉,不能把身體搞垮了。
            posted @ 2006-04-09 20:36 炙熱的太陽 閱讀(260) | 評論 (0)編輯 收藏
            ? 畢業(yè)半年多了,寫程序有半年了,今天突然間有點迷茫??我是不是要繼續(xù)做程序?我是不是做程序的材料?一連串的問題向我逼來,搞得我一下午沒有工作,于是乎上論壇,看大家討論,思考問題........
            ?? 莫非這就是人們所說的浮躁,我想可能是吧!人不免在某一件事上做久了,就會產(chǎn)生厭倦感,或者是一時間沒有了方向,又或者是沒有思想依靠,等等,如此之類。
            ?? 咳!想發(fā)一下感慨,可是怎么也想不起來要怎么寫,大學四年,文筆是徹底荒廢了,現(xiàn)在想拾起來,可又吐不出什么東西來,有時間寫上一大堆東西,回頭再一看,自己都想反胃,于是隨即刪掉,到最后,還是沒有寫出一點像樣的文章來。我比較喜歡林銳(大學十年的作者)的文風,風趣,灑脫又有內(nèi)涵,我也一直想寫他那樣的文章來,好歹也算是給自己肯定一下。
            ?? 算了,又忘詞了,上面的已經(jīng)是把腸子里的東西攪騰了好幾遍,不想再折騰自己,就這樣自己吧!繼續(xù)學習C++,繼續(xù)韓語學習,繼續(xù)努力!
            posted @ 2006-03-22 20:08 炙熱的太陽 閱讀(239) | 評論 (0)編輯 收藏
                 摘要: 當SP端和ISMG端建立Connect連接后,我們就要開始發(fā)送短信了,而Submit操作的目的是SP在與ISMG建立應(yīng)用層連接后向ISMG提交短信。ISMG以Submit_Resp消息響應(yīng)。下面還是要看它的消息定義:字段名字節(jié)數(shù)屬性描述Msg_Id8Unsigned Integer信息標識。Pk_total1Unsigned Integer相同Msg_Id的信息總條數(shù),從1開始。Pk_number...  閱讀全文
            posted @ 2006-03-20 20:43 炙熱的太陽 閱讀(1861) | 評論 (0)編輯 收藏
            ? 前一陣子,我一直想再學一門外語,但害怕學一門新的外語太難,所以就一直沒有起步。在一次飯局上我聽一個同事說,韓語很簡單,一個星期基本上可以入門,很簡單的一門語言,而且又是從中文演變過去的,對中國人來說是比較簡單。加上最近中國盛行韓風,因此決定學習韓語。于是乎上書店買入門教程,上網(wǎng)上找資料,一個星期下來,嘿!發(fā)現(xiàn)韓語還真的挺簡單的,挺適合我這種懶散的人學習??上?,我沒有下載朝鮮語插件,不然的我也用韓語寫一篇blog!
            posted @ 2006-03-17 08:24 炙熱的太陽 閱讀(687) | 評論 (10)編輯 收藏
                CMPP協(xié)議的全稱是中國移動通信互聯(lián)網(wǎng)短信網(wǎng)關(guān)接口協(xié)議,它是聯(lián)想亞信公司根據(jù)SMMP協(xié)議為中國移動量身定做的,是符合中國國情的一個短信協(xié)議,閑話不多說了,說說CMPP的主要功能吧。(1)短信發(fā)送(short message mobile originate)MO,就是手機給SP發(fā)短信;(2)短信接受(short message mobile terminated)MT,這個就是SP給手機發(fā)的短信了,通常我們手機上收到的不良短信就是SP給我們的MT。CMPP協(xié)議的通信基礎(chǔ)是TCP/IP為底層通信承載的,連接方式是長連接方式。SP與ISMG之間,SMSC和ISMG之間的交互過程中均采用異步方式,即任一個網(wǎng)元在收到請求消息后應(yīng)立即回應(yīng)。
               下面看看它的消息定義:CMPP中的消息分為消息頭和消息體。消息頭定義如下
             
             

            字段名

            字節(jié)數(shù)

            類型

            描述

            Total_Length  

            4

            Unsigned Integer

            消息總長度(含消息頭及消息體)

            Command_Id

            4

            Unsigned Integer

            命令或響應(yīng)類型

            Sequence_Id

            4

            Unsigned Integer

            消息流水號,順序累加,步長為1,循環(huán)使用(一對請求和應(yīng)答消息的流水號必須相同)

             
            那么下面就是SP連接到ISMG上了,看它的Bind連接消息定義
             

            字段名

            字節(jié)數(shù)

            屬性

            描述

            Source_Addr 

            6

            Octet String

            源地址,此處為SP_Id,即SP的企業(yè)代碼。

            AuthenticatorSource

            16

            Octet String

            用于鑒別源地址。其值通過單向MD5 hash計算得出,表示如下:

            AuthenticatorSource =

            MD5Source_Addr+9 字節(jié)的0 +shared secret+timestamp

            Shared secret 由中國移動與源地址實體事先商定,timestamp格式為:MMDDHHMMSS,即月日時分秒,10位。

            Version

            1

            Unsigned Integer

            雙方協(xié)商的版本號(高位4bit表示主版本號,低位4bit表示次版本號),對于3.0的版本,高4bit3,低4位為0

            Timestamp

            4

            Unsigned Integer

            時間戳的明文,由客戶端產(chǎn)生,格式為MMDDHHMMSS,即月日時分秒,10位數(shù)字的整型,右對齊 。

             
            根據(jù)上的定義我們可以寫出的代碼,如下,在VC環(huán)境下編寫的

            /*
             *函數(shù)功能:建立和CMPP網(wǎng)關(guān)的直接通路
             *輸入條件:SP用戶名const char *UserName,SP密碼const char *PWD 
             */
            void Ccmpp_API::CmppConnect(const char *UserName, const char *PWD)
            {
             char netbuf[100];
             CMPP_CONNECT *bufer;
             bufer=(CMPP_CONNECT*)netbuf;
             memset(bufer, 0, 100);
             bufer->nTotalLength = htonl(39);//CMPP_CONNECT消息總長度
             bufer->nCommandId = htonl(CMPP_CONNECT_tag);//消息標志
             //自動產(chǎn)生SeqId號
                if (sequenceid == 123456789i32)
             {
              sequenceid = 1;
             }else{
              sequenceid++;
             }
             bufer->nSeqId = htonl(sequenceid);
               
             int MD5Len;
             MD5_CTX md5;//MD5源字串
             CTime TimeData = CTime::GetCurrentTime();
             CString timestamp = TimeData.Format("%m%d%H%M%S");
             unsigned char md5source[29];
             int Len1 = strlen(UserName);
             int Len2 = strlen(PWD); 
             MD5Len = Len1 + 9 +Len2 + timestamp.GetLength();
             memset(md5source, 0, MD5Len);
             
             memcpy(bufer->sSourceAddr, UserName, Len1);
             memcpy(md5source, UserName, Len1);
             
             for (int j = 0; j<Len2; j++)
             {
              md5source[j + Len1 + 9] = PWD[j];
             }
             for (int i=0;i<timestamp.GetLength();i++)
             {
              md5source[i + Len2 + Len1 + 9]=timestamp[i];
             }
             
             //進行md5加密轉(zhuǎn)換
             md5.MD5Update(md5source, MD5Len);
             md5.MD5Final(md5source);
             memcpy(bufer->sAuthSource, md5source, 29);
             bufer->cVersion = 0x30;
             bufer->nTimeStamp = htonl(atoi(timestamp));
             CmppSocket.Send(bufer, 39, 0);//把消息打包發(fā)送
             return;
            }
             
            今天就到這,下次再寫,歡迎交流!
            posted @ 2006-03-15 07:58 炙熱的太陽 閱讀(9525) | 評論 (8)編輯 收藏
               什么都有第一次!第一次對誰來說都充滿了神秘色彩,寫博文與別人交談,對我來說是第一次,也是一次新的嘗試,所以就敲下這些文字,開始博客之旅!
            posted @ 2006-03-14 17:12 炙熱的太陽 閱讀(346) | 評論 (0)編輯 收藏
            僅列出標題  
            久久久黄色大片| 爱做久久久久久| 一本久道久久综合狠狠躁AV| 大香网伊人久久综合网2020| 国内精品人妻无码久久久影院 | 久久婷婷人人澡人人| 国产一区二区精品久久岳| 亚洲国产二区三区久久| 国产成年无码久久久久毛片| 久久人人妻人人爽人人爽| 亚洲综合伊人久久大杳蕉| 国产毛片欧美毛片久久久| 亚洲熟妇无码另类久久久| 91精品国产91久久久久福利| 国产精品久久久久久久| 99久久国产热无码精品免费久久久久 | 亚洲午夜久久久久妓女影院 | 伊人久久五月天| 中文字幕人妻色偷偷久久| 久久久久久亚洲精品成人| 国产V综合V亚洲欧美久久| 国产L精品国产亚洲区久久| 蜜臀久久99精品久久久久久 | 伊人久久综合精品无码AV专区| 日韩乱码人妻无码中文字幕久久 | 精品多毛少妇人妻AV免费久久| 亚洲级αV无码毛片久久精品| 99久久国语露脸精品国产| 久久久精品日本一区二区三区 | 亚洲狠狠婷婷综合久久蜜芽| 久久久久亚洲av无码专区导航 | 亚洲国产成人精品91久久久| 久久亚洲国产精品成人AV秋霞| 国产精品久久久久久一区二区三区 | 国产精品欧美久久久天天影视| 久久综合色区| a级成人毛片久久| 久久无码AV一区二区三区| 国产福利电影一区二区三区久久久久成人精品综合 | 久久婷婷五月综合色99啪ak| 久久综合给合久久国产免费|