原创 兼容性問題
“林子大,什麼鳥都有”,爲了對廣大用戶負責,程序必須要有極高的兼容性。編寫代碼時,一定要考慮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加載