• <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>

            #ant

            The dreams in which I'm dying are the best I've ever had...

            共3頁(yè): 1 2 3 
            還是要看實(shí)際情況,并不是任何時(shí)候都可以用全局變量替代單例的。
            如在Symbian C++ S60V3以前,是不允許WSD數(shù)據(jù)(全局變量)存在的,這種情況下必須用Tls Singleton這樣的模式。。。
            re: loki技法(1).靜態(tài)斷言 螞蟻終結(jié)者 2010-04-10 13:06
            見(jiàn)過(guò)另外一種比較簡(jiǎn)潔的實(shí)現(xiàn):
            #define static_assert(expr) typedef char __static_assert__[(expr) ? 1 : -1];

            如:

            static_assert(sizeof(int) == 1);

            編譯錯(cuò)誤為:"the size of an array must be greater than zero"

            不過(guò)不能夠像上面那樣用msg自定義錯(cuò)誤信息!
            re: 實(shí)用編譯器構(gòu)建指南(一) 螞蟻終結(jié)者 2009-12-10 09:37
            不錯(cuò),多謝分享,期待后續(xù)內(nèi)容!
            re: strlen源碼剖析 螞蟻終結(jié)者 2009-06-08 11:51
            @宋兵乙
            “由于char_ptr是指向char的指針,因此每次++應(yīng)該是增加一個(gè)char的長(zhǎng)度就是8”
            看來(lái)你對(duì)指針運(yùn)算還不太了解,建議好好復(fù)習(xí)一下指針部分。
            授人魚(yú)不如授人漁呵呵
            至于生命周期,大可不必用RANDOM_VAR這種方式,還是建議看一下BOOST_FOREACH
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-04-27 23:03
            @MM
            你是要計(jì)算純數(shù)據(jù)的md5值?
            那可以用這個(gè)重載方法:
            void update(const void* input, size_t length);

            比如:
            1.計(jì)算一個(gè)int的md5值:
            int i = 12345;
            MD5 md;
            md.update(&i, sizeof(i));
            cout << md.toString() << endl;

            2.計(jì)算一個(gè)struct的md5值:
            struct Package {
            char buffer[32];
            int i;
            //...
            };

            Package pkg;
            MD5 md;
            md.update(&pkg, sizeof(pkg));
            cout << md.toString() << endl;

            不知道這是否是你想要的功能?
            re: C++&Win32寫(xiě)的空當(dāng)接龍 螞蟻終結(jié)者 2009-04-16 19:32
            @sevenxz
            暈。。。
            其實(shí)上面就有下載鏈接!
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-04-16 16:31
            @csu_boy
            這個(gè)應(yīng)該是跟計(jì)算md5值的軟件實(shí)現(xiàn)有關(guān),一般來(lái)說(shuō)都只看文件內(nèi)容,內(nèi)容相同的文件md5就是一樣的
            不錯(cuò),謝謝分享!
            比較隱晦的問(wèn)題。。。
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-04-08 11:52
            @csu_boy
            這個(gè)是Endian的問(wèn)題,本文中md5的實(shí)現(xiàn)是基于Little Endian的機(jī)器,所以要寫(xiě)成下面這樣:
            _state[0] = 0x67452301;
            _state[1] = 0xefcdab89;
            _state[2] = 0x98badcfe;
            _state[3] = 0x10325476;
            如果是Big Endian的機(jī)器,則要寫(xiě)成:
            _state[0] = 0x01234567;
            _state[1] = 0x89abcdef;
            _state[2] = 0xfedcba98;
            _state[3] = 0x76543210;
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-04-05 17:29
            調(diào)用update是有累加效果的,上面的代碼:
            ...
            md5.update(str1);
            ...
            md5.update(str2);
            實(shí)際上得到的是"abcdefghijklmnabcdefghijklmn"的md5值

            如果想重復(fù)使用某個(gè)MD5對(duì)象,需要在下次update前先reset,如下:
            ...
            string str2 = str1 ;
            //這里加上reset
            md5.reset();
            md5.update(str2);
            ...
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-03-07 11:56
            @chang
            16位系統(tǒng)下應(yīng)該可以拿上面的代碼移植,比如需要把md5.h中的
            typedef unsigned int uint32;
            改為
            typedef unsigned long uint32;
            可能還需要改動(dòng)其他代碼,我這里沒(méi)有條件測(cè)試,你不妨測(cè)試一下。

            update是唯一的接口,不調(diào)用是不行的呵呵。
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-02-23 20:01
            @roger
            呵呵,哥們說(shuō)笑了,不收費(fèi),若是覺(jué)得不錯(cuò)的話直接用就行了!
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-02-23 11:38
            @涼風(fēng)
            md5算法是一種hash算法,是單向的,還原是不可能的。因?yàn)槎喾輸?shù)據(jù)可能計(jì)算出相同的md5值。
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-02-20 12:40
            @Nihlathak
            當(dāng)文件不存在的時(shí)候得到的結(jié)果肯定是錯(cuò)誤的。
            上面的例子寫(xiě)成那樣只是為了演示用法。
            最好在調(diào)用update前判斷一下文件是否存在:
            md5.reset();
            ifstream file("E:\\1.txt");
            if (!file) {
            // error: can not open file
            }
            else {
            md5.update();
            PrintMD5("E:\\1.txt", md5);
            }
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-02-02 09:07
            我這里是原創(chuàng)呵呵,不過(guò)不知道你說(shuō)的make文件是什么?我這里好像沒(méi)有
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2009-01-08 13:15
            @far
            其實(shí)最簡(jiǎn)單方法就是修改ABCD的初始值,哪怕只是修改其中一位數(shù),得到的md5值也會(huì)跟標(biāo)準(zhǔn)的完全不一樣。因?yàn)閙d5算法的整個(gè)過(guò)程都是以ABCD這4個(gè)數(shù)為基礎(chǔ)。
            re: TEA加密算法的C/C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-12-12 17:43
            @ghbxx
            我當(dāng)時(shí)寫(xiě)這篇文章的時(shí)候是可以的,可能現(xiàn)在QQ協(xié)議又變了
            re: John Carmack密碼:0x5f3759df 螞蟻終結(jié)者 2008-12-01 10:49
            不錯(cuò),確實(shí)很強(qiáng)!
            8 using namespace vl;
            9 using namespace vl::platform;
            10 using namespace vl::stream;
            11 using namespace vl::system;
            12 using namespace vl::system::synchronization;
            13 using namespace vl::serialization;
            14 using namespace vl::commondata;
            15 using namespace vl::communication;
            居然都是自己封裝的。。。難道是想模擬C#
            re: 昨天 螞蟻終結(jié)者 2008-11-17 23:27
            太有感觸了,美好的童年啊!
            奔3了,一樣不得不去奔波,很無(wú)奈!
            呵呵,最后幾分鐘居然還是千與千尋里的Always with me
            呵呵,沒(méi)用過(guò),看起來(lái)好像很復(fù)雜,一直用自己寫(xiě)的一個(gè)通用的makefile模板。有點(diǎn)害怕這些東西,當(dāng)時(shí)看makefile的manual有陰影了。
            re: 代碼的壞味 螞蟻終結(jié)者 2008-11-15 13:23
            呵呵,AutoLock這種構(gòu)造時(shí)lock,析構(gòu)時(shí)unlock的方法其實(shí)很好么,boost::scoped_lock就是這樣的。個(gè)人覺(jué)得括號(hào)其實(shí)無(wú)所謂,至少這種方法比手動(dòng)lock,unlock要優(yōu)雅很多,在異常安全方面也有保證。
            re: 從Win32 API封裝Thread類[1] 螞蟻終結(jié)者 2008-10-10 09:35
            @OwnWaterloo
            建議:
            1.單下劃線開(kāi)始的標(biāo)識(shí)符?
            這個(gè)是編程風(fēng)格問(wèn)題,很難說(shuō)出哪個(gè)更好哪個(gè)更差,正所謂蘿卜白菜各有所愛(ài),個(gè)人認(rèn)為成員變量無(wú)論是下劃線開(kāi)始(如:_handle)還是下劃線結(jié)尾(如:handle_),又或者是用匈牙利命名法,只要在編碼中始終保持一種風(fēng)格就好。編碼風(fēng)格對(duì)程序員來(lái)說(shuō)可能是一種信仰。

            2.將windows.h 從thread.h中移走
            這個(gè)確實(shí)是可以考慮,如果考慮到跨平臺(tái)的話。

            疑問(wèn):
            1. Thread的析構(gòu)
            據(jù)我所知,join應(yīng)該是等待線程結(jié)束的慣用法,Java.Thread,boost.Thread都通過(guò)join來(lái)保證線程的安全結(jié)束。是否是規(guī)范我也不清楚,貌似join是POSIX中線程取消規(guī)范中的一個(gè)?

            2.Thread 似乎并不需要從 Runable 繼承
            是不需要繼承Runnable的,這樣只是模仿Java的行為。
            re: 從Win32 API封裝Thread類[1] 螞蟻終結(jié)者 2008-10-10 09:15
            @Robinfoxnan
            OwnWaterloo回答的也是我想回答的,我就不多說(shuō)了。
            re: 開(kāi)篇 by PureMilk(王婷婷) 螞蟻終結(jié)者 2008-10-09 18:00
            悄悄地路過(guò)。。。加油!
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-09 16:10
            @ktls
            不客氣,很多人用的時(shí)候都有這個(gè)問(wèn)題,在這里弄清楚了免得后面的人再走彎路!
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-09 15:49
            @ktls
            md5.update(ifstream("C:\\abc.doc"));
            剛才沒(méi)注意到,ifstream默認(rèn)是以文本模式打開(kāi)的,改成二進(jìn)制應(yīng)該就可以了:
            md5.update(ifstream("C:\\abc.doc", ios::binary));
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-09 15:45
            @ktls
            email:antterminator@gmail.com
            msn:antterminator@hotmail.com
            這樣的話可能是其它的問(wèn)題,那把a(bǔ)bc.doc發(fā)給我測(cè)試下吧。
            這個(gè)本來(lái)是考慮跨平臺(tái)使用的,如果做成dll就只能windows用了。
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-09 15:41
            @wx3456
            有幾個(gè)地方我不太清楚,首先049ec6b8b8565dfde2007f7a9f7ecd84是什么密碼加密出來(lái)的?還有1234的md5應(yīng)該是81dc9bdb52d04dc20036dbd8313ed055才對(duì)。如果方便的話把源碼發(fā)我?guī)湍憧纯矗阌衜sn沒(méi)有?有的話加我antterminator@hotmail.com
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-09 14:11
            @ktls
            這個(gè)我測(cè)試過(guò)很多次了,肯定是沒(méi)有問(wèn)題的!
            可能是你哪個(gè)地方弄錯(cuò)了!
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-08 16:17
            @foxtail
            這個(gè)是沒(méi)有問(wèn)題的,參考下上面我回答的:
            @gg
            其實(shí)具體的用法在源代碼的main函數(shù)中已經(jīng)演示得很清楚了,我想你也肯定沒(méi)有看文章后面的:“2.計(jì)算文件的MD5值”這一段,專門(mén)計(jì)算md5值的軟件如WinMD5是以二進(jìn)制形式打開(kāi)文件的,所以:

            string s1 = MD5(ifstream("file")).toString();
            string s2 = MD5(ifstream("file", ios::binary)).toString();

            s1與s2是不一樣的,前一個(gè)是以文本模式打開(kāi),后一個(gè)是以二進(jìn)制模式打開(kāi)。
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-08 15:30
            @wx3456
            呵呵,前輩不敢當(dāng),我大學(xué)剛畢業(yè)工作才幾個(gè)月而已。目前從事C++方面的工作,有空多交流。
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-08 15:06
            @wx3456
            既然MD5是單向的,那你可以換一種方式:
            在用戶登錄時(shí),計(jì)算用戶輸入的密碼的MD5值,拿這個(gè)值和ini文件里的MD5比較,如果相等就允許登錄(雖然多個(gè)不同的密碼可能對(duì)應(yīng)相同的MD5值,但是幾率可以說(shuō)非常小,對(duì)于一般的應(yīng)用來(lái)說(shuō)足夠了)。

            比如用戶A注冊(cè)時(shí)的密碼為abc,計(jì)算MD5值保存在ini文件為:
            900150983cd24fb0d6963f7d28e17f72

            在用戶A登錄時(shí),假設(shè)用戶輸入的密碼為xxx,則計(jì)算xxx的MD5值,若和ini文件中的MD5值相等就允許登錄。
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-10-08 14:28
            @wx3456
            不好意思,我不太明白你說(shuō)的“MD5字符解密”是什么意思?
            MD5是單向的,是沒(méi)有辦法從MD5值推算出原先的信息的。
            從string值轉(zhuǎn)換成CString很簡(jiǎn)單,google一下有很多。
            re: strlen源碼剖析 螞蟻終結(jié)者 2008-09-07 19:54
            @star
            歡迎轉(zhuǎn)載,轉(zhuǎn)載當(dāng)然是沒(méi)有問(wèn)題的,畢竟寫(xiě)文章就是能讓更多的人看到!

            為什么不一次就移32位呢?
            我也不太清楚,可能就其中注釋所說(shuō):
            /* Do the shift in two steps to avoid a warning if long has 32 bits. */
            只是為了避免warn吧呵呵!
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-09-01 19:38
            @zhongyunde
            代碼沒(méi)有問(wèn)題,可以放心使用!
            不錯(cuò),有點(diǎn)意思。
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-08-19 10:12
            @zhengdu
            你用的是哪個(gè)版本的VC ?VC6.0 ?

            大概是你的編譯器太老,不支持static const整形值的初始化語(yǔ)法,試試下面兩種辦法:

            1. 將md5.h中的
            static const size_t BUFFER_SIZE = 1024;
            改為
            enum { BUFFER_SIZE = 1024 };

            2. 將md5.h中的
            static const size_t BUFFER_SIZE = 1024;
            改為
            static const size_t BUFFER_SIZE;

            并在md5.cpp的
            MD5::MD5() {
            reset();
            }
            上面加上
            const size_t MD5::BUFFER_SIZE = 1024;
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-06-23 22:03
            @CPPLearning
            謝謝提醒,是我的疏忽呵呵!
            re: 非完美C++ Singleton實(shí)現(xiàn)[2] 螞蟻終結(jié)者 2008-05-06 22:02
            @sodar
            能說(shuō)下在動(dòng)態(tài)庫(kù)工程中使用Singleton的具體需求嗎?dll中用atexit注冊(cè)的函數(shù)在FreeLibrary的時(shí)候會(huì)被調(diào)用,可以保證Singleton安全析構(gòu)。
            作為庫(kù)函數(shù)效率還是比簡(jiǎn)潔重要,建議看下VC CRT的匯編代碼。
            很不錯(cuò),能不能幫忙發(fā)個(gè)源代碼,非常感謝!!!
            antterminator@gmail.com
            re: MD5算法的C++實(shí)現(xiàn) 螞蟻終結(jié)者 2008-03-14 09:14
            @gg
            其實(shí)具體的用法在源代碼的main函數(shù)中已經(jīng)演示得很清楚了,我想你也肯定沒(méi)有看文章后面的:“2.計(jì)算文件的MD5值”這一段,專門(mén)計(jì)算md5值的軟件如WinMD5是以二進(jìn)制形式打開(kāi)文件的,所以:

            string s1 = MD5(ifstream("file")).toString();
            string s2 = MD5(ifstream("file", ios::binary)).toString();

            s1與s2是不一樣的,前一個(gè)是以文本模式打開(kāi),后一個(gè)是以二進(jìn)制模式打開(kāi)。
            貌試很不錯(cuò)的IDE,哪天下載個(gè)玩玩!
            re: 單件模式的實(shí)現(xiàn) 螞蟻終結(jié)者 2008-03-02 21:37
            singleton遠(yuǎn)沒(méi)有想象的那么簡(jiǎn)單!
            re: C++&Win32寫(xiě)的空當(dāng)接龍 螞蟻終結(jié)者 2008-02-24 15:24
            呵呵,源代碼在上面就有下載啊!
            re: boost::static_assert 螞蟻終結(jié)者 2008-01-05 21:26
            不錯(cuò),雖然沒(méi)用過(guò)。卻值的學(xué)習(xí)
            不錯(cuò),真心支持。祝早日寫(xiě)出一套engine
            共3頁(yè): 1 2 3 
            精品一区二区久久久久久久网站| 久久精品成人免费国产片小草| 国内精品久久久久久久久 | 亚洲午夜无码久久久久| 久久久久九九精品影院| 久久综合久久伊人| 久久天天躁狠狠躁夜夜2020老熟妇 | 一本久久免费视频| 久久毛片免费看一区二区三区| 一本大道加勒比久久综合| 国产精品一区二区久久精品| 国产精品久久久久久久久| 日本福利片国产午夜久久| 久久精品无码一区二区app| 一本久久免费视频| 久久精品国产亚洲AV大全| 国产精品久久久久久| 久久综合给合综合久久| 久久久久久久精品成人热色戒| 中文字幕无码免费久久| 2021久久国自产拍精品| 久久精品二区| 无码国内精品久久人妻| 99久久久久| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久久久久久国产免费看| 99久久国产综合精品女同图片| 国产麻豆精品久久一二三| 久久久久亚洲精品天堂久久久久久| 伊人久久大香线蕉亚洲| 热re99久久精品国产99热| 2021久久精品免费观看| 久久线看观看精品香蕉国产| 久久久国产亚洲精品| 国内精品伊人久久久久| 99蜜桃臀久久久欧美精品网站| 国产精品99久久99久久久| 亚洲国产精品无码久久青草 | 久久亚洲欧美日本精品| 无码人妻久久一区二区三区蜜桃| 一级做a爰片久久毛片人呢|