• <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>
            共4頁: 1 2 3 4 
            re: 博客一周年紀念貼 Richard Wei 2013-05-02 19:40
            @lwch
            嗯,說得好。 確實會收到一些邀請 ^_^
            re: 博客一周年紀念貼 Richard Wei 2013-05-01 17:25
            @萬連文
            確實,無論你寫什么東西,網上都或多或少的有人寫過,但是很多時候你可能是似懂而非懂, 如果你能以別人看的懂的方式寫出來, 就表示你真的懂了。

            閱讀優秀源碼我覺的確實是一種除寫博客之外的積累技術好方法, 當然閱讀源碼的前提是你已經有了比較好的技術積累, 你能真正看懂這些源碼,理解作者的想法,理論上通過源碼你可以達到國外技術專家的水平。

            另外,不愿分享我覺得也是國內一些技術人員的“通病”, 學了一點“小技巧”就當成寶貝藏著掖著,實際上這樣反而阻礙了自己的成長。
            mark, 拜膜...
            re: 山寨STL Richard Wei 2013-04-18 09:29
            @Rick
            這個我覺得沒有標準答案, 跟你的C++功底和STL的使用頻率有關,而且個人覺得STL的學習方式既可以走"瀑布"模型,也可以走"敏捷"模型,。
            所謂瀑布指的是每步都走踏實之后再進入下一步,比如STL用的很熟練之后再深入原理。所謂敏捷是指先把所有的東西都走一遍,知道大概情況之后再深入每個階段。我覺得兩種方式各有利弊, 主要還是看個人情況。
            @春秋十二月
            受益就好, 其實關于菜單的原理我也是想了好久才明白的 ^_^
            做了幾年客戶端開發,一直想學游戲開發, 無奈數學都忘光了.
            如果進入游戲公司不搞核心,只是寫寫邏輯,感覺也沒啥意思.
            博主在該領域混,不知有啥建議?
            re: google的開源項目總結(轉載) Richard Wei 2013-04-09 21:45
            應該是機器翻譯的,看起來挺費勁。
            @jacky
            這是系統系統的默認行為。
            當然我上面的是簡化版的實現, 實際情況要考慮更多問題, 具體可以參考MFC里DoModal的實現源碼
            分析的不錯,支持下.
            @waiting4you

            對, OnIdle如果是放在Timer里是沒有影響的 ,如果是自己在在消息循環里調用, 就只能寫成全局函數,然后在這里調用了。

            Windows系統對于菜單的實現應該不是用SetCapture的方式, 調用TrackPopupMenu后也是阻塞式的,至于父窗口有保持沒有激活可以看標題欄是不是保持高亮。
            @waiting4you
            SetCapture的方法應該是不正確定。
            菜單彈出時焦點當然還在父窗口上,這是菜單窗口是沒有獲得焦點的, 菜單窗口的鍵盤消息需要父窗口轉發給他。我的測試代碼基本上已經完整的模擬了菜單的行為。
            re: 軟件換膚的原理 Richard Wei 2013-03-05 08:59
            @mike

            這個看產品定位吧?
            GDI最通用, 各個系統上都能直接跑;
            GDI+稍微有點依賴,但是一般問題不大,開發也方便很多;
            D2D性能和效果都不錯,如果自己開發DirectUI的界面庫可以考慮,另外它也不支持XP;
            WPF依賴.net, 程序大小和性能方面都有些限制,但是開發效率和效果都不錯。

            所以一般來說如果你開發的是通用軟件,比如QQ或者迅雷,既要考慮性能還要考慮各個平臺的支持,在XP沒有消亡之前還是會選擇GDI(+)。
            如果你做是項目型的管理軟件, 要考慮開發效率, 一般會選擇WPF。
            如果你是自己開發DirectUI界面庫, 可以考慮同時支持GDI(+)和Direct2D。
            re: 基于WinDbg的內存泄漏分析 Richard Wei 2013-03-01 20:08
            @zuhd
            懂得程序運行的原理是關鍵, 工具都差不多, 用GCC和VC一樣可以寫C++代碼。
            @路人甲
            是的, C#語言本身支持property, C++中只能通過Get,Set函數了, COM也是這么做的。
            re: 基于WinDbg的內存泄漏分析 Richard Wei 2013-02-27 17:30
            @Hunter
            需要memleaktest.exe的pdb符號文件,我用Vs2008, release版也會默認生成,如果沒有生成就要在編譯選項里設置了。
            re: 開源一套DirectUI界面庫 Richard Wei 2013-02-25 20:49
            這里有內存泄露 :
            else if(info.wParam == WPARAM_KILL_TIMER)
            {
            if(pTimerRet != NULL)
            {
            ::KillTimer(m_hWnd, pTimerRet->nTimerIndex);
            m_arTimer.erase(std::remove(m_arTimer.begin(), m_arTimer.end(), pTimerRet), m_arTimer.end());
            delete pTimerRet; //內存泄露
            lRet = S_OK;
            }
            }
            @a_very_big_graywolf
            只是總結, 以后再用到會方便一些。
            不錯, 前2個需求也可以用繼承來實現, 但是如果該特化函數基類內部有調用,就可能要搞成虛函數了。
            @korall
            不錯 ,這種可能更通用, 雖然我一直沒用。
            已在文章后面加上你提的方案。:)
            re: 范型編程雜談 Richard Wei 2013-02-19 17:11
            @華夏之火
            不錯, 從C++11的變化可以看到好多新特性都是針對模板編程的,范型編程是C++編程的趨勢
            @lwch
            慚愧, 雖然工作好多年,最近才開始研究模板,準備稍微深入一下。
            @lwch
            不懂, 什么意思?
            不過看了你的博客,學習了 ^_^
            re: 在C++中實現事件(委托) Richard Wei 2013-02-07 17:03
            @Jeff Chen
            慚愧, 沒研究過boost。
            可能優點就是簡單,可以自己掌控吧,實際上好多公司是禁用boost的。
            re: 在C++中實現事件(委托) Richard Wei 2013-02-01 17:05
            @zdhsoft
            恩,本身就是借助c++11的 function和bind進行封裝
            re: 在C++中實現事件(委托) Richard Wei 2013-01-31 17:36
            @lierlier
            多謝指點,感覺你的實現方式對外界比較靈活,性能也比較高。
            而我的實現更強調封裝,適合于在某個框架中使用。
            re: 在C++中實現事件(委托) Richard Wei 2013-01-31 14:49
            @lierlier
            確實, 所以.Net里的事件返回類型都都void。這里帶返回值的事件適用于只有一個函數綁定。
            re: 2012龍年之旅 Richard Wei 2013-01-27 22:00
            牛, 一個人把微軟一幫人的事情都做了。

            啥時候寫文章介紹下微軟RPC內部的實現原理, 對這個比較有興趣, 呵呵。
            re: 理解WinRT Richard Wei 2013-01-13 17:47
            WinRT的API看MSDN, 大部分和Xaml相關,其實沒多少東西: http://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx
            re: 理解WinRT Richard Wei 2013-01-13 17:44
            @bukebushuo
            WinRT的定義看這里:http://en.wikipedia.org/wiki/Windows_Runtime

            Windows Runtime, or WinRT, is a platform-homogeneous application architecture on the Windows 8 and Windows RT operating systems.
            re: QQ截圖時窗口自動識別的原理 Richard Wei 2012-12-20 13:11
            @嘿嘿
            是的, QQ這種實時的方式如果啟動截圖后, 后臺窗口一變, 識別出來的就是錯誤的了.
            我這種在啟動截圖時保存所有窗口Rect的做法才是可靠的.
            re: QQ截圖時窗口自動識別的原理 Richard Wei 2012-11-17 20:12
            看到有些人對窗口識別的代碼感興趣,在博文最后加上了通過Enum方式查詢窗口的代碼
            還是直接用C++ 11中的function吧
            re: 范型編程雜談 Richard Wei 2012-11-11 23:56
            @r.h
            用GP實現運行時多態在C++ 中現在來說還做不到,ATL同時用了GP和OO。
            有興趣的話可以看下這篇http://www.shnenglu.com/longshanks/archive/2007/12/06/37915.aspx
            re: C++模板會使代碼膨脹嗎 Richard Wei 2012-11-09 08:42
            @溪流
            繼承和模板在一定程度上都可以實現代碼重用, 我想我們平時所說的模板使代碼膨脹是相對OO里的繼承而言.
            re: GacUI 0.4.0.0 發布啦 Richard Wei 2012-10-19 15:09
            Hoho, 支持下大牛
            re: 消息耦合還是接口耦合 Richard Wei 2012-10-15 10:25
            @zaccheo

            接口的管理,我感覺有2種方式: 一種是基于COM的引用計數,大家都可以保存接口指針,這里要避免循環引用;還有一種是讓Module Manger統一管理,也就是只有Module Manager保存有接口指針,其他模塊不保存接口指針,要使用時統一向Module Manger要。

            第一種高效,第二種相對安全
            re: 消息耦合還是接口耦合 Richard Wei 2012-10-13 22:28
            @123
            我們是客戶端應用,各模塊內部卻確實會有多線程,但是各模塊間的調用及事件觸發都是跑在主線程里,所以這種情況下,如果走消息,基本上要給每個消息維護一個數組,內部保存哪些人訂閱了該消息,當該消息到達時進行依次分發,所以這里無論是內存大小還是性能都會比接口直接調用消耗更多。

            接口每個方法都有各自不同的明確的參數定義, 消息的話因為要求所有消息參數一致,所以會導致參數含義不明確,內部保存的指針需要強制轉換才能使用。

            "客戶端小規模應用";是相對“大規模Server集群”, 其實我們要做的東西本身也挺大挺復雜,好幾十人同時開發。
            在Win7的Aero模式下因為桌面的窗口層次有變化, 上面的代碼會找不到窗口"SHELLDLL_DefView"窗口

            簡單改了下,未完全測試:
            HWND GetShellDLLForWin7()
            {
            HWND hWndShell = NULL;
            HWND hWndDesktop = GetDesktopWindow();
            if(hWndDesktop == NULL) return NULL;

            HWND hWndWorkerW = NULL;
            while(TRUE)
            {
            hWndWorkerW = FindWindowEx(hWndDesktop, hWndWorkerW, _T("WorkerW"), NULL);
            if(hWndWorkerW == NULL) break;

            if(::GetWindowLong(hWndWorkerW, GWL_STYLE) & WS_VISIBLE)
            {
            break;
            }
            else
            {
            continue;
            }
            }

            if(hWndWorkerW != NULL)
            {
            hWndShell = FindWindowEx(hWndWorkerW, NULL, _T("SHELLDLL_DefView"), NULL);
            }

            return hWndShell;
            }

            BOOL CheckParent(HWND hWnd)
            {
            static HWND s_hWndOldParent = NULL;

            HWND hWndProgram = NULL;
            HWND hWndShellDLL = NULL;
            hWndProgram = FindWindow(_T("Progman"), _T("Program Manager"));
            if(hWndProgram != NULL)
            {
            hWndShellDLL = FindWindowEx(hWndProgram, NULL, _T("SHELLDLL_DefView"), NULL);

            //Win7
            if(hWndShellDLL == NULL)
            {
            hWndShellDLL = GetShellDLLForWin7();
            }
            }

            if(hWndShellDLL != NULL
            && hWndShellDLL != s_hWndOldParent)
            {
            SetWindowLong(hWnd, GWL_HWNDPARENT, (LONG)hWndShellDLL);
            s_hWndOldParent = hWndShellDLL;
            return TRUE;
            }

            return FALSE;
            }
            @春秋十二月
            多謝,總結的挺好
            @萬連文
            確實,C++11里把這個叫住Alias templates
            good
            re: 理解程序內存 Richard Wei 2012-09-20 19:25
            @春秋十二月
            沒看過windows高級調試一書, 但是感覺比較經典的書是<<軟件調試>>
            re: API Hook在TA中的應用 Richard Wei 2012-09-19 19:14
            @birdhsy
            不好意思,因為是公司代碼,所以不好外傳
            re: QQ截圖時窗口自動識別的原理 Richard Wei 2012-09-06 12:47
            @m775@sina.com
            其實我用enum的方式已經自己實現了,參考http://www.shnenglu.com/weiym/archive/2012/08/21/187801.html
            @畢達哥拉斯半圓
            貌似上面的朋友 溪流 寫過,http://www.shnenglu.com/Streamlet/archive/2010/10/24/131064.aspx
            共4頁: 1 2 3 4 
            久久99精品久久久久婷婷| 久久久精品国产| 日本精品久久久久中文字幕| 午夜不卡888久久| 污污内射久久一区二区欧美日韩| 久久天天躁狠狠躁夜夜躁2014| 亚洲AV日韩精品久久久久| 久久青青草原精品影院| 天天做夜夜做久久做狠狠| 久久精品国产亚洲AV蜜臀色欲| 72种姿势欧美久久久久大黄蕉| 久久一区二区免费播放| 久久久久久亚洲Av无码精品专口| 精品久久久久久久中文字幕| 久久精品人人槡人妻人人玩AV| 久久久受www免费人成| 精品无码久久久久国产| 久久久久高潮综合影院| 久久九九免费高清视频| 97精品国产91久久久久久| 亚洲色大成网站www久久九| 欧美精品福利视频一区二区三区久久久精品| 久久婷婷色综合一区二区| 久久精品国产精品亜洲毛片| 国产精品美女久久久久久2018| 亚洲欧洲中文日韩久久AV乱码| 国产激情久久久久影院| 久久亚洲国产中v天仙www| 久久综合精品国产二区无码| 99久久无色码中文字幕人妻| 一极黄色视频久久网站| 久久精品国产福利国产琪琪| 久久国产精品无码网站| 久久精品中文字幕有码| 久久精品国产99久久久香蕉| 久久精品国产WWW456C0M| 久久国产高清一区二区三区| 久久精品国产精品亚洲| 色婷婷噜噜久久国产精品12p | 久久综合狠狠色综合伊人| 久久久久免费看成人影片|