VC中的Unicode程式設計

2021-03-31 21:12:56 字數 990 閱讀 8642

vc中的unicode程式設計

在windows下程式設計還是支援unicode吧,大勢所趨啊,window 2k以後的系統底層都是基於unicode的,就算你呼叫ansi的api(以a結尾比如setwidowstexta),系統也會在你的程序預設堆上動態分配一塊記憶體,存放轉換後的unicode字串,然後把轉換後的字串傳遞給api,如果呼叫了返回值為ansi字串的api,windows會在後台進行相反的轉換,多浪費時間啊!!就算不考慮效率問題,難道你不想讓你的軟體國際化嗎?你還想面臨半個漢字等尷尬的問題嗎?

其實vc中進行unicode程式設計也不麻煩,大概如下:

1.為工程新增unicode和_unicode預處理選項,在vc.***中就是 專案 -> 屬性 -> c/c++ -> 預處理器 在"預處理定義"中加入這兩個巨集定義(vc6中 project -> settings -> c/c++ -> general 中的 preprocessor definitions).

2.include (一般在stdafx.h中)然後把所有使用char*定義變數的地方換為lptstr/tchar*或lpctstr/const tchar*(對應於const char*).

3.把所有的字串常量用_t()巨集包起來,比如 tchar* sztext = _t("我的text");

4.所有的c庫字串操作函式也做相應的替換,比如

strlen ->_tcslen

strcat ->_tcscat

strcmp ->_tcscmp

......

注意,這些函式中的"文字長度"均為字元個數,而非char個數具體參看msdn.

5.api呼叫一般不用做特殊處理,當定義了unicode和_unicode後,所有的api都會被巨集指向w結尾的版本(不定義則指向a結尾的版本).

其實,上面所說的並非強制你使用unicode,如果你還想回去使用ansi,沒有問題,把第一步定義的兩個巨集拿掉就ok了,繼續我們的ansi程式設計!!

:)

VC 中的Unicode程式設計

整理了一下蒐集的有關vc 中的unicode程式設計問題,如char wchar t tchar t等。原帖 windows早在windows2000以後的版本裡使用unicode進行全系統開發了,也就是用於建立視窗 顯示文字 進行字串操作等所有核心函式都需用unicode字串。可我們在進行wind...

用VC6進行UNICODE程式設計

1.新增 unicode 和 unicode 預處理定義 位置 project settings c c preprocessor definitions 新增了這兩個定義後,mfc的一些內建型別如 tchar cstring 都將轉為支援寬字元型別 wchar t char tchar char ...

用VC6進行UNICODE程式設計

1.新增 unicode 和 unicode 預處理定義 位置 project settings c c preprocessor definitions 新增了這兩個定義後,mfc的一些內建型別如 tchar cstring 都將轉為支援寬字元型別 wchar t 2.使用寬字元相關型別,如 ch...