原创 兼容性問題

“林子大,什麼鳥都有”,爲了對廣大用戶負責,程序必須要有極高的兼容性。編寫代碼時,一定要考慮API所必須的系統版本,切記。 點贊 收藏 分享 文章舉報 lyclowlevel

原创 訪問權限

在MSDN中搜索ACCESS_MASK可以瞭解標準權限,對於對象相關的權限說明,可以搜索那些需要權限參數且與對象相關的API,比如OpenProcess,裏面就有介紹進程對象相關的權限。 點贊 收藏 分享

原创 窗口背景的刷新問題

影響背景刷新的因素有:1、註冊窗口類時,是否指定了hbrBackground;2、調用InvalidateRect時,第三個參數的取值。可以分爲以下三種情況: 1、未指定hbrBackground BeginPaint返回的PAINTST

原创 不會崩潰的strcpy

lstrcpyn內部如下實現   LPTSTR lstrcpyn(LPTSTR pszDst, LPCTSTR pszSrc, int iMaxLength) {     __try     {         int nLength =

原创 InternetGetCookieEx

AYU說在IE6.0下,這個API會將ucs-2的字符串當成UTF-8處理,從而返回錯誤的長度。

原创 關係依賴倒置原則

    首先,解釋幾個概念。     高級組件、低級組件     假設有類A,類B。類A的方法中有調用了類B的方法。我們認爲類A依賴於類B,類A是基於類B實現的。相對於類B而言,類A是“高級組件”。 相對於類A而言,類B是“低級組件”。

原创 套接字的屬性

    以前我總是將是否處於阻塞模式和是否可以進行異步IO操作混淆起來。以前,我認爲可以進行異步IO操作的套接字必然不是處於阻塞模式;處於阻塞模式的套接字無法進行異步IO操作。最新比較正規地學習win socket開發,終於分清這兩個概念

原创 什麼是AppID

    在COM中,安全控制的最小單位是進程,每個進程都有對應的安全控制策略。進程的安全控制策略保存在註冊表中,存儲位置爲:HKCR\AppID\<AppID>。     AppID指的就是<AppID>,是一個128位的GUID。該子鍵

原创 從ATL窗口銷燬想到的對象生命週期管理

    使用ATL窗口時,經常會手動銷燬窗口,大致的代碼如下:     DestroyWindow();     m_hWnd = NULL; DestoryWindow()調用是同步的,函數返回時窗口已經被銷燬。做爲一個微軟的好公民,手

原创 線程退出時,其擁有的窗口資源也會被釋放掉。

http://msdn.microsoft.com/en-us/library/ms686724%28v=vs.85%29.aspx     Terminating a thread has the following results:

原创 你的“重疊IO”是真正異步的嗎?

什麼是同步IO?什麼是異步IO? 在windows下,一個IO讀操作可以分爲兩大步: 1、從IO設備讀取數據,保存在系統的緩衝區; 2、從系統緩衝區拷貝到用戶的緩衝區。 如果一個讀操作的兩個步驟都不在用戶

原创 套接字的關閉過程

    通常我們調用closesocket關閉套接字,套接字的關閉過程,有以下三種情況:     1、取消沒有進行的發送操作,系統在後臺發起一個關閉過程,向對等方發送FIN報文,並等待對等方的FIN報文。整個關閉過程不會產生任何的事件(W

原创 深入瞭解WM_SIZE

         在窗口大小發生改變時,系統往窗口發送WM_SIZE消息,WPARAM指出窗口新的狀態,LPARAM給出窗口新的大小。窗口的狀態有三種:SIZE_MINIMIZE,SIZE_MAXIMIZ

原创 z-order引出的問題

        在窗口與窗口之間毫無重疊的情況下,根本不需要關心z-order。然而,當窗口之間出現重疊時,系統就需要通過一個標準來確定窗口的顯示順序。這個標準就是z-order。存在多個因素影響一個窗口的z-order:       

原创 使用WTL::CBitmap時需要注意的一個事項

CBitmap::LoadBitmap可以從EXE模塊中獲取指定資源的位圖句柄(HBITMAP),該函數內部使用WIN32 API:LoadBitmap加載資源。仔細查看API LoadBitmap的remark部分,可以發現該API加載