1
:windows vista
,每個unicode
都使用utf-16
編碼,談到
unicode
,除非特別宣告,否則都是
utf-16
編碼。 2:
wchat_t
對應char
,表示乙個16為
unicode
字元。宣告
unicode
字元和字串方式: 3
:巨集text
自動切換
ansi
或者unicode字元/
字串。 4
:windows nt
起,所有核心函式都用
unicode
,及時我們呼叫的是
ansi
版本函式時,此函式也只是乙個轉換層,轉為字元為
unicode
,再呼叫
unicode
版本函式。返回類似。已知轉換函式存在
bug,應用程式應該用
unicode
開發。
5:定義
unicode,_unicode
要麼同時指定,要麼都不指定。 6
:c執行庫中的
ansi
函式不會轉換為
unicode
版本。
7:安全函式,以
_s為字尾
eg:_tcscpy_s
,_tcscat_s,
使用_countof
計算緩衝區大小。緩衝區太小會返回失敗,不會自動截斷。
erange 8
stringcchcat(ex),stringcchcopy(ex),stringcchprintf(ex).. .
緩衝區太小會執行截斷。
strsafe_e_insufficient_bugger
,被succeeded/failed
定義成失敗。 9
:比較函式:
comparestring(ex)
,lcid getthreadlocale(),
cch引數傳入負值,會假設
pstring以0
結尾。
comparestringordinal,
比較程式內部所用字串(路徑名、登錄檔、
xml元素
/屬性等),速度快。只支援
unicode
。兩個函式返回
0表示呼叫失敗,返回
cstr_less_than(1)
表示pstring1
小於pstring2
,返回cstr_equal(2)
表示相等,返回
cstr_greater_than(3)
表示pstring1
大於pstring2
。返回值-2
10:使用
multibytetowidechar
和widechartomultibyte
進行ansi
與unicode
轉換。
11:判斷
unicode
還是ansi
字元,使用
istextunicode
讀書筆記 Windows核心程式設計
第二章 從windows nt後,windows所有版本都用unicode來構建。如果輸入乙個非unicom的字串,如ansi,函式會將其先轉換為unicode,再把結果傳回作業系統,這樣經過轉換後,需要更多的記憶體,而且執行速度更慢。並且,目前已知的windows的這些轉換函式存在一些bug。所有...
《Windows核心程式設計》讀書筆記(一)
第1章對程式錯誤的處理 1 常見的windows函式的返回型別 void 無返回值型,該函式的執行不可能失敗。windows函式很少此型別 bool 函式執行失敗則返回0,否則返回非0 handle 失敗則返回null,否則返回乙個可操作的物件的handle。注 有些函式會返回乙個控制代碼值inva...
《Windows核心程式設計》讀書筆記(三)
unicode 寬位元組字符集是是為了解決軟體本地化 多語言版本化 而定製的一項技術標準。unicode字串中的所有字元都是16位的 兩個位元組 程式設計師只需要對指標進行遞增或者遞減,就可以遍歷字串中的各個字元,不在需要像單位元組字元一樣去判斷下一位元組是屬於同一字元的組成部分還是乙個新字元。使用...