C++筆試
1. 將程序改成Unicode編程需要做哪些修改?
window 2k以后的系統(tǒng)底層都是基于Unicode的,就算你調用ANSI的API(以A結尾比如SetWidowsTextA),系統(tǒng)也會在你的進程默認堆上動態(tài)分配一塊內存,存放轉換后的Unicode字符串,然后把轉換后的字符串傳遞給API,如果調用了返回值為ANSI字符串的API,Windows會在后臺進行相反的轉換,
C++筆試
。其實VC中進行Unicode編程也不麻煩,大概如下:
1.為工程添加UNICODE和_UNICODE預處理選項,在VC.net中就是 項目 -> 屬性 -> c/c++ -> 預處理器 在"預處理定義"中加入這兩個宏定義(vc6中 project -> settings -> c/c++ -> general 中的 Preprocessor definitions).
2.Include <TCHAR.h>(一般在stdafx.h中)然后把所有使用char*定義變量的地方換為LPTSTR/TCHAR*或LPCTSTR/const TCHAR*(對應于const char*).
3.把所有的字符串常量用_T()宏包起來,比如 TCHAR* szText = _T("我的Text");
4.所有的C庫字符串操作函數(shù)也做相應的替換,比如
strlen ->_tcslen
strcat ->_tcscat
strcmp ->_tcscmp
......
注意,這些函數(shù)中的"文本長度"均為字符個數(shù),而非char個數(shù)具體參看MSDN.
5.API調用一般不用做特殊處理,當定義了UNICODE和_UNICODE后,所有的API都會被宏指向W結尾的版本(不定義則指向A結尾的版本).
其實,上面所說的并非強制你使用UNICODE,如果你還想回去使用ANSI,沒有問題,把第一步定義的兩個宏拿掉就OK了,繼續(xù)我們的ANSI編程,
資料共享平臺
《C++筆試》(http://salifelink.com)。
2. TCHAR同char的區(qū)別
TCHAR 就是當你的字符設置為什么就是什么
例如:程序編譯為 ANSI, TCHAR 就是相當于 CHAR
當程序編譯為 UNICODE, TCHAR 就相當于 WCHAR ,每個字符占兩個字節(jié)
【C++筆試】相關文章:
普天C++筆試題09-10
聯(lián)想C++筆試題10-12
普天C++筆試題09-09
C/C++筆試題05-24
C++和JAVA筆試題08-01
文思c++筆試題目10-12
C++筆試題目分享08-07
軟通動力C++筆試題11-02
C++面試筆試題目07-16