• <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++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              19 Posts :: 0 Stories :: 98 Comments :: 0 Trackbacks
            后來發(fā)現(xiàn)在Mobile5上,注冊表結(jié)構(gòu)發(fā)生了變化
            HKLM\Software\Microsoft\ConnMgr\Providers\{7C4B7A38-5FF7-4bc1-80F6-5DA7870BB1AA}\Connections
            變成了
            HKLM\Comm\ConnMgr\Providers\{7C4B7A38-5FF7-4bc1-80F6-5DA7870BB1AA}\Connections
            而且連接的鍵值中多了一個GUID,目前還不知道如何生成或者獲取的。
            re: C++ 類成員的CALLBACK SuperPlayeR 2007-08-21 09:51
            其實主要是使用了.*或者是-〉*操作符的表達式。
            最后的總結(jié)第二點,應(yīng)該說是盡量減少互斥鎖保護范圍內(nèi)代碼的執(zhí)行時間。減少對慢速IO設(shè)備的訪問其實目的只是縮短時間而已。
            re: 對研發(fā)部的思考 SuperPlayeR 2007-08-13 11:24
            @SmartPtr
            不少優(yōu)秀的IT企業(yè)在浦東不假,不過我目前已經(jīng)搬家到浦西長橋一村那個偏僻的地方了,這也是我目前很頭疼的原因之一。還是想要住回浦東去啊,什么都方便。
            一個朋友研究了在smartphone上建立GPRS撥號連接的情況,貼出一些代碼供需要的朋友參考:
            http://cpp.sourceforge.net/?show=39205

            怕這個鏈接以后會失效,我還是先copy一份過來。

            #include "stdafx.h"

            #include <wchar.h>

            #include <tapi.h>
            #include <tsp.h>

            #include <ras.h>
            #include <raserror.h>

            #include <vector>

            DWORD FindCellLine()
            {
            LONG lRet = 0;
            DWORD dwDeviceNum = 0;
            DWORD dwDeviceID = -1, dwTapiVersion = TAPI_CURRENT_VERSION;

            HLINEAPP hLineApp = NULL;

            LINEINITIALIZEEXPARAMS initParams = {0};
            initParams.dwTotalSize = sizeof(initParams);
            initParams.dwOptions = LINEINITIALIZEEXOPTION_USEEVENT;

            std::vector<char> buffer(1024, '\0');
            LPLINEDEVCAPS devcaps =(LINEDEVCAPS*) &buffer[0];

            devcaps->dwTotalSize = buffer.size();

            lRet = lineInitializeEx(&hLineApp, GetModuleHandle(NULL), NULL,
            L"GPRS Device Finder", &dwDeviceNum, &dwTapiVersion, &initParams);

            if (lRet != 0)
            return -1;

            for(DWORD dwDeviceIndex = 0; dwDeviceIndex != dwDeviceNum; dwDeviceIndex++)
            {
            lineGetDevCaps(hLineApp, dwDeviceIndex, dwTapiVersion, 0, devcaps);

            if (devcaps->dwNeededSize > devcaps->dwTotalSize)
            {
            buffer.resize(devcaps->dwNeededSize);
            devcaps =(LINEDEVCAPS*) &buffer[0];
            devcaps->dwTotalSize = buffer.size();

            dwDeviceIndex--;
            continue;
            }

            if (wcscmp((LPCTSTR) &buffer[devcaps->dwLineNameOffset],
            CELLTSP_LINENAME_STRING) == 0)
            {
            dwDeviceID = dwDeviceIndex;
            break;
            }
            }

            lineShutdown(hLineApp);

            return dwDeviceID;
            }

            BOOL SetupGprsRasEntry(LPWSTR szEntryName, LPCWSTR szAccessPointName)
            {
            DWORD dwLineID = 0;
            std::vector<char> buffer(sizeof(VARSTRING) + sizeof(CELLDEVCONFIG), '\0');

            LPVARSTRING varbuffer =(LPVARSTRING) &buffer[0];
            varbuffer->dwTotalSize = buffer.size();

            LPCELLDEVCONFIG cellcfg = NULL;

            {//查找Cell Line的設(shè)備ID
            if ((dwLineID = FindCellLine()) == -1)
            return FALSE;
            }

            {//獲得默認數(shù)據(jù)配置
            if (lineGetDevConfig(dwLineID, varbuffer, L"comm/datamodem") != 0)
            return FALSE;

            cellcfg =(LPCELLDEVCONFIG) &buffer[varbuffer->dwStringOffset];
            }

            {//開始配置GPRS數(shù)據(jù)
            cellcfg->bGPRSConnectionInfoValid = TRUE;

            memset(&cellcfg->cgciGPRSConnectionInfo, 0x00,
            sizeof(cellcfg->cgciGPRSConnectionInfo));

            wcscpy(cellcfg->cgciGPRSConnectionInfo.wszAccessPointName, szAccessPointName);

            cellcfg->cgciGPRSConnectionInfo.dwProtocolType = CELLDEVCONFIG_GPRSPROTOCOL_IP;
            cellcfg->cgciGPRSConnectionInfo.dwL2ProtocolType = CELLDEVCONFIG_GPRSL2PROTOCOL_PPP;
            cellcfg->cgciGPRSConnectionInfo.dwDataCompression = CELLDEVCONFIG_GPRSCOMPRESSION_OFF;
            cellcfg->cgciGPRSConnectionInfo.dwHeaderCompression = CELLDEVCONFIG_GPRSCOMPRESSION_OFF;
            }

            {//安裝GPRS撥號項
            RASENTRY rsaentry = {0};

            rsaentry.dwSize = sizeof(rsaentry);
            rsaentry.dwfOptions = RASEO_ProhibitEAP|RASEO_RemoteDefaultGateway;
            rsaentry.dwfNetProtocols = RASNP_Ip;
            rsaentry.dwFramingProtocol = RASFP_Ppp;

            wcscpy(rsaentry.szDeviceName, CELLTSP_LINENAME_STRING);
            wcscpy(rsaentry.szDeviceType, RASDT_Modem);
            wcscpy(rsaentry.szLocalPhoneNumber, L"~GPRS!");

            if (RasSetEntryProperties(NULL, szEntryName, &rsaentry, sizeof(rsaentry),
            (LPBYTE) cellcfg, sizeof(*cellcfg)) != 0)
            return FALSE;
            }

            return TRUE;
            }

            re: 探索Heap Corruption SuperPlayeR 2007-08-02 19:52
            @學(xué)習(xí)者
            呵呵~~這個錯誤就是內(nèi)存溢出了。試想在Release版本下沒有了這些信息,存放在內(nèi)存中的都是有用的數(shù)據(jù),一個10Byte數(shù)據(jù)可能是你的一個數(shù)組,其后跟著另外一個數(shù)據(jù),而你寫入超過10Byte的數(shù)據(jù)不就把后面的數(shù)據(jù)給覆蓋掉了么?
            re: 向Pane、Splitter前進 SuperPlayeR 2007-08-02 19:45
            不錯~用的是自己開發(fā)的界面庫吧。
            唉,InfoSys~~~~~
            re: 幾種peer review的比較 SuperPlayeR 2007-08-02 15:18
            這個有意思多了。
            re: Peer Review 該如何翻譯 SuperPlayeR 2007-08-02 15:16
            我的意思是放著大把的好東西不研究,咬文嚼字起來了有點過了。
            re: Peer Review 該如何翻譯 SuperPlayeR 2007-08-02 10:56
            有點過了~
            一個人、大半年
            有多高的生產(chǎn)力?
            貌似從發(fā)文到現(xiàn)在又有半年時光了~
            re: 用c++,寫小型病毒 SuperPlayeR 2007-08-02 09:57
            這只能算是惡作劇。
            昨晚上睡覺之前順手把一本買了很久卻一直沒看的書拿起來翻了翻,linux設(shè)備驅(qū)動程序,看了看關(guān)于usb驅(qū)動的章節(jié),發(fā)現(xiàn)當(dāng)初如果剛開始研究的時候就看看這個,可能會少走不少彎路,至少什么是Configuration,什么是Interface,什么是EndPoint它都介紹清楚了~:P
            今天如果有時間,我繼續(xù)寫(四),介紹一下。
            re: 關(guān)于GOOF的bug問題 SuperPlayeR 2007-07-17 11:29
            原來博主是搞游戲開發(fā)的。GOOF我沒讀過,不過第一個bug的確不是bug,可能博主自己理解錯誤了。其他的幾個光看博主貼出來的片斷也看不出個所以然來。
            hoho~難得付前輩還來我blog上踩個腳印,蓬蓽生輝啊~就是不知道是不是真的。
            不理解你也不行~總的找個法子寬慰自己才能繼續(xù)安心學(xué)習(xí)啊,不然老在那里郁悶、抱怨,還是進步不了啊~老前輩有空的話還是給我指點指點,雖然公司現(xiàn)在把驅(qū)動外包出去給別的公司作,而我自己的項目又忙得一塌糊涂,但是我還是對驅(qū)動開發(fā)很感興趣的。
            re: 中國職員的九種劣根性 SuperPlayeR 2007-07-13 11:34
            照下自己確實有不少這樣的毛病,受教了,以后要多多自省。
            re: VS9中C++少得可憐的更新 SuperPlayeR 2007-07-13 11:30
            路是自己走的嘛~~博主也不必擔(dān)心以后的學(xué)習(xí)者不知道指針是什么了,因為編程語言畢竟還只是一種工具,他不知道指針是什么,只要他的程序能夠很好的達到目的就行了。另一方面我們也可以認為他們不知道指針是什么的學(xué)的就不再是C++了~:P或許不久的將來,微軟就會給自己的“C++”定義新的名字了,這又有何不可呢?我們不能因為微軟的產(chǎn)品中用到“C++”幾個關(guān)鍵字就覺得它就應(yīng)該局限在標準C++的約束之下啊~走我們自己的路就是了,修行靠個人~
            re: 用live writer發(fā)布c++博客 SuperPlayeR 2007-07-12 15:02
            我也剛剛開始用live writer,好像不能夠以摘要形式發(fā)布~
            學(xué)習(xí)學(xué)習(xí)~~感謝分享~
            re: 如何判斷一個COM對象是否可用 SuperPlayeR 2007-07-09 09:53
            我個人理解萬連文的意思就是說,針對你講述的這種情況,實際是因為com組件沒有被注冊造成了,而顯然使用COM技術(shù)的規(guī)范性操作當(dāng)然是先注冊這個組件再使用。而博主您的想法也是通過讀取注冊表看該組件是否注冊了,其實也是一種不規(guī)范使用。
            不講效率的話,memset(dest, 0, nDiff);也可以

            恕我直言,我個人認為在這樣的小地方求效率的提高,不如把代碼寫的更容易讓人看懂。《Unix編程藝術(shù)》中似乎有對于這種“優(yōu)化”做過探討,我比較贊成書中作者的觀點。
            re: 學(xué)習(xí)Hacking Wince SuperPlayeR 2007-07-06 14:01
            這次的最大收獲是入門了匯編,感覺又增加了不少新的見識。
            貌似第一個排序類 BubbleSorter中的
            if(list[j+1] < list[j])
            {
            bIsDone = false;

            int tmp = list[j+1];
            list[j+1] = list[j];
            list[j] = tmp;
            }
            其中int tmp應(yīng)該是T tmp吧?
            后面的用到交換的好像都有這個問題。
            哦,原來作者在文章結(jié)尾的時候說明了,呵呵~~~怪我太著急還沒看完就評論了。哎~下次要改掉這個壞習(xí)慣。
            #ifdef _DEBUG
            #define new DEBUG_NEW
            #undef THIS_FILE
            static char THIS_FILE[] = __FILE__;
            #endif
            這個我文中也提到過,一般vc自動幫你生成的代碼中都有這幾行。確實對定位內(nèi)存泄露很有幫助,不過有時候我們經(jīng)常會用到一些第三方的類庫,有的類庫中高人們喜歡自己寫內(nèi)存分配管理的,這個就不一定靈了。我也是因為項目中有用到這樣的類庫才用其他方法試了半天,最后才發(fā)現(xiàn)原來還是自己的項目中的一個老毛病潛伏著~
            其實不是我做夢在工作,而是被一些問題弄怕了~特別是有些問題是項目組成員弄出來的,而他自己又沒法定位錯誤的時候,我就難受了~:)
            大人是搬家了吧,一下子貼了這么多文章上來了。呵呵~
            受教了~~
            re: do...while(0)的妙用 SuperPlayeR 2007-07-05 10:27
            第二種用法我是從Linux內(nèi)核分析中看到的,博主說了MFC中也有,才恍然大悟。唉~~自己也用了這么久VC了,還沒真地去好好讀過這些源碼,慚愧慚愧~~
            re: 你有接受新事物的能力嗎 SuperPlayeR 2007-07-01 02:43
            hehe,我只是就這個事情說明一下不要過于肯定自己的觀點,應(yīng)該時常有一種懷疑的態(tài)度來否定既有的,開拓未有的。:)
            re: 一道微軟的Mini-Test筆試題(二) SuperPlayeR 2007-06-29 17:56
            這個題目我有個思路,不過現(xiàn)在下班了,思路還沒成熟。嘿嘿~~~晚點再奉上
            re: 我的項目管理經(jīng)歷 SuperPlayeR 2007-06-29 14:30
            受教了~

            re: 一道微軟的Mini-Test筆試題(一) SuperPlayeR 2007-06-29 14:11
            本來看到嘩嘩一長串代碼就準備跳過的,看到1樓的評論說寫的不錯,又回頭認真讀了一遍,確實不虛此行,受教了~//bow //thanks
            re: 指針和引用的區(qū)別 SuperPlayeR 2007-06-29 13:52
            寫文章的“廢話”似乎太多了,又不用騙稿費。
            呵呵,也許是個人風(fēng)格吧~~不過看了開頭幾句"廢話",就不想再看了~
            恩,看看再說。沒搞過ATL+WTL,先學(xué)習(xí)學(xué)習(xí)。
            不過初看代碼發(fā)現(xiàn)里面有些地方?jīng)]注意哦~最好是把編譯中的一些警告看看,該改掉的就改掉。比如ADate::GetLunationInfo中就少了個return TRUE;
            re: 面向?qū)ο蠓治龇椒ㄅc算法 SuperPlayeR 2007-06-28 09:41
            建議閱讀一下《Unix編程藝術(shù)》
            re: 對研發(fā)部的思考 SuperPlayeR 2007-06-27 09:21
            兵強強一個,將熊熊一窩

            說的好啊,我確實很認同這一點,而且對自身的修養(yǎng)也還覺得很不滿意,還在探索如何成為一個成功團隊的leader~:)
            re: 對研發(fā)部的思考 SuperPlayeR 2007-06-26 16:10
            寫出來確實舒服多了,鈔票不會是選擇公司的第一因素,至少對我來說不是。大家都是年輕人,可能都有創(chuàng)業(yè)的沖動和理想,然而卻不是人人都有機會去當(dāng)老板來創(chuàng)業(yè)的。所以,當(dāng)你選擇一個好的公司,能夠為你提供一個發(fā)展空間,你實現(xiàn)自我價值的同時,也是幫助公司的成長與進步,這才是最理想的。
            不過話還是那么句古話,鈔票不是第一的,卻是很重要的。公司給你開出的價碼也是對你價值的承認。我相信如果你是一個好員工,一個好公司不會在這方面吝嗇。
            re: 你也許不知道的#define用法 SuperPlayeR 2007-04-24 17:14
            是啊,但是我一直沒注意到過。那次看到了,才想搞清楚它是啥意思,幸虧最后還是搞清楚了,就寫篇隨筆讓和我一樣不知道的兄弟們認識認識咯。
            欧美伊香蕉久久综合类网站| 久久精品亚洲中文字幕无码麻豆| 精品国产乱码久久久久久1区2区| 久久亚洲精品人成综合网| 久久Av无码精品人妻系列| 精品久久久久久中文字幕| 久久久久久久免费视频| 色偷偷偷久久伊人大杳蕉| 久久夜色tv网站| 777午夜精品久久av蜜臀| 久久精品国产免费| 伊人久久一区二区三区无码| 久久精品国产精品亚洲毛片| 午夜精品久久久久9999高清| 久久99久久99小草精品免视看| 欧美麻豆久久久久久中文| 国产欧美久久久精品| 久久九九久精品国产免费直播| 久久r热这里有精品视频| 久久精品国产久精国产一老狼| 99久久精品久久久久久清纯| 精品国产乱码久久久久久呢| 久久人人爽人人精品视频| 国产Av激情久久无码天堂| 久久久国产99久久国产一| 99久久亚洲综合精品网站| 国产一区二区三区久久| 国产精品美女久久久m| 亚洲AV日韩AV天堂久久| 伊人久久大香线蕉综合热线| 久久精品国产国产精品四凭 | 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 国产精品久久久天天影视| 日韩AV无码久久一区二区| 亚洲色欲久久久综合网| 久久精品青青草原伊人| 久久人人爽人人人人爽AV| 亚洲国产综合久久天堂| 18禁黄久久久AAA片| 亚洲中文字幕无码一久久区| 国产亚洲精品久久久久秋霞 |