1、microsoft將com從16位windows移植到win32時,做出了乙個重要決策:所有需要字串作為引數的com介面方法都 只接受unicode字串。因為com一般用於讓不同元件彼此間進行「對話」,而unicode是傳遞字串最理想的選擇。
2、當資源編譯器譯完所有資源後,輸出檔案就是資源的乙個二進位制形式。資源中的字串值 (字串表、對話方塊模板、選單等)始終是以unicode字串的形式儲存的。
3、在每個變數後的記憶體都會被填充為0xcc,這樣是為了能夠在自動檢測中,檢查出緩衝區溢位。
4、_countof是乙個巨集,來獲取字元大小。
5、getthreadlocale這個來返回系統的語言識別符號。
6、istextunicode這個來判斷某乙個文字內容是否為unicode編碼。
7、一般系統呼叫函式會有兩個版本,分別是unicode與ansi兩種版本。其實ansi執行起來更複雜。因為在ansi內部其實還是呼叫的unicode版本的函式,於是就存在乙個引數轉換的問題,將ansi引數轉換成unicode,然後再去呼叫unicode版本的函式。所以直接呼叫unicode版本的函式執行會更快。
8、核心物件可以用乙個安全描述符(security descriptor, sd)來保護。
9、核心物件有乙個靜態成員用來計數,當核心物件被建立時計數值為1,如果有其他程序訪問此核心物件(通過特殊的程序共享核心物件的方式)則計數值加1,程序結束,計數值減1,如果計數為0,則系統核心會釋放此核心物件。
10、核心物件的作用域是基於程序的,這樣做處於安全和健壯型考慮,而且只有通過呼叫windows api 才能使用核心物件。
11、將null作為psecurity_attributes引數傳入時,返回的控制代碼是不可繼承的。
12、當乙個子程序繼承了父程序的核心物件的控制代碼時,控制代碼在父、子程序中的索引是一樣的。
13、物件控制代碼的繼承只會發生在生成子程序的時候發生。假如父程序後來又建立了新的核心物件,並同樣將它們的控制代碼設為可繼承的控制代碼。那麼正在執行的子程序是不會繼承這些新的控制代碼的。
14、乙個服務的命名核心物件始終位於全域性命名空間內。應用程式自己的命名核心物件在會話的命名空間內。不過,我們也可以強制把乙個命名物件放入全域性命名空間,具體 做法是在其名稱前加上「global\」字首。如:
handle h = createevent(null, false, false, text("global\\myname"));
也可以將乙個核心物件放入到當前會話的命名空間,在名稱前加上「local\」字首,如
handle h = createevent(null, false, false, text("local\\myname")):
15、security identifier(安全描述符),sid
16、通過createboundarydescriptor建立的邊界,不要用closehandle關閉,而是用deleteboundarydescriptor;
17、偽控制代碼其實就是指的是指呼叫函式的本身執行緒控制代碼。
Windows小知識分享
無論是剛買的電腦還是已經使用有一段時間的電腦了,都希望自己的電腦速度可以快一點,所謂速度快一點是什麼意思呢?即 開啟時間短,點開程式或者 應用反應快,玩遊戲的時候拋卻網速的原因不會出現卡頓等情況。這些都是想提公升的地方,當然了我們說的是 相差不大的一批,你總不能要求 乙個兩三千的商務電腦 和乙個 頂...
windows小知識點
windows自帶的圖畫工具存放的位置 c windows system32 mspaint.exe 域 的配置檔案存放的位置 c windows system32 drivers etc hosts檔案 如何在右鍵新建選單中新增內容 1 輸入命令regedit進入登錄檔,進入hkey classe...
一些windows中常用的小知識
c windows system32 config sam存放使用者密碼 sam檔案啟動項目錄 ssh scp 22 tcpwin r services.msc 開啟服務 win r regedit 開啟登錄檔 win r msconfig 開啟系統配置 f2 選中檔案重新命名 f3 查詢 alt ...