日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

Unicode編程類筆試真題

將程序改成Unicode編程需要做哪些修改?

window 2k以后的系統(tǒng)底層都是基于Unicode的,就算你調(diào)用ANSI的API(以A結(jié)尾比如SetWidowsTextA),系統(tǒng)也會在你的進程默認堆上動態(tài)分配一塊內(nèi)存,存放轉(zhuǎn)換后的Unicode字符串,然后把轉(zhuǎn)換后的字符串傳遞給API,如果調(diào)用了返回值為ANSI字符串的API,Windows會在后臺進行相反的轉(zhuǎn)換。

其實VC中進行Unicode編程也不麻煩,大概如下:

1.為工程添加UNICODE和_UNICODE預處理選項,在VC.net中就是 項目 -> 屬性 -> c/c++ -> 預處理器 在"預處理定義"中加入這兩個宏定義(vc6中 project -> settings -> c/c++ -> general 中的 Preprocessor definitions).

2.Include (一般在stdafx.h中)然后把所有使用char*定義變量的地方換為LPTSTR/TCHAR*或LPCTSTR/const TCHAR*(對應(yīng)于const char*).

3.把所有的字符串常量用_T()宏包起來,比如 TCHAR* szText = _T("我的Text");

4.所有的C庫字符串操作函數(shù)也做相應(yīng)的替換,比如

strlen ->_tcslen

strcat ->_tcscat

strcmp ->_tcscmp

......

注意,這些函數(shù)中的"文本長度"均為字符個數(shù),而非char個數(shù)具體參看MSDN.

5.API調(diào)用一般不用做特殊處理,當定義了UNICODE和_UNICODE后,所有的API都會被宏指向W結(jié)尾的版本(不定義則指向A結(jié)尾的版本).

其實,上面所說的并非強制你使用UNICODE,如果你還想回去使用ANSI,沒有問題,把第一步定義的兩個宏拿掉就OK了,繼續(xù)我們的ANSI編程。

相關(guān)文章推薦:

微軟等世界500 強公司的筆試真題

IBM社會招聘筆試題練習準備

名企招聘之大唐電信筆試真題

新浪財經(jīng)頻道網(wǎng)編筆試真題

花樣繁多的招聘筆試題

本文已影響6827
上一篇:埃森哲招聘閱讀理解經(jīng)典筆試題 下一篇:廈新2013最新筆試真題

相關(guān)文章推薦

|||||