在 VC6 0 下設定 Unicode 編譯環境

2021-06-17 21:42:49 字數 1659 閱讀 5488

vc++ 6.0支援 unicode 程式設計,但預設的是 ansi,所以開發人員只需要稍微改變一下編寫**的習慣便可以輕鬆編寫支援 unicode 的應用程式。

使用 vc++ 6.0 進行 unicode 程式設計主要做以下幾項工作:

1、為工程新增 unicode 和 _unicode 預處理選項。

具體步驟:開啟 [工程]->[設定…] 對話方塊,在 c/c++ 標籤對話方塊的「preprocessor」中去除 _mbcs,加上 _unicode,unicode

。(注意中間用逗號隔開).

在沒有定義 unicode 和 _unicod e前,所有函式和型別都預設使用 ansi 的版本;在定義了 unicode 和 _unicode 之後,所有的 mfc類 和 windows api 都變成了寬位元組版本了。

2、設定程式入口點

因為 mfc 應用程式有針對 unicode 專用的程式入口點,我們要設定entry point。否則就會出現連線錯誤。

設定 entry point 的方法是:開啟 [工程]->[設定…] 對話方塊,在 link 頁的 output 類別的 entry-point symbol 裡填上 wwinmaincrtstartup。

3、使用 ansi/unicode 通用資料型別

微軟提供了一些ansi和unicode相容的通用資料型別,我們最常用的資料型別有 _t ,tchar,lptstr,lpctstr。

順便說一下,lpctstr 和 const tchar* 是完全等同的。其中l表示 long 指標,這是為了相容 windows 3.1 等 16 位作業系統遺留下來的,在 win32 中以及其它的32位作業系統中,long 指標和 near 指標及 far 修飾符都是為了相容的作用,沒有實際意義。p(pointer)表示這是乙個指標;c (const)表示是乙個常量;t(_t巨集)表示相容 ansi 和 unicode,str(string)表示這個變數是乙個字串。綜上可以看出, lpctstr 表示乙個指向常固定位址的可以根據一些巨集定義改變語義的字串。比如:

tchar* sztext=_t(「hello!」);

tchar sztext=_t(「i love you」);

使用函式中的引數最好也要有變化,比如:

messagebox(_t(「你好」));
其實,在上面的語句中,即使您不加 _t 巨集,messagebox 函式也會自動把「你好」字串進行強制轉換。但我還是推薦您使用_t巨集,以表示您有unicode編碼意識。

4、修改字串運算問題

一些字串操作函式需要獲取字串的字元數 (sizeof(szbuffer)/sizeof(tchar)),而另一些函式可能需要獲取字串的位元組數 sizeof(szbuffer)。您應該注意該問題並仔細分析字串操作函式,以確定能夠得到正確的結果。

ansi 操作函式以 str 開頭,如 strcpy(),strcat(),strlen();

unicode 操作函式以 wcs 開頭,如 wcscpy,wcscpy(),wcslen();

ansi/unicode 操作函式以 _tcs 開頭 _tcscpy (c執行期庫);

ansi/unicode 操作函式以 lstr 開頭 lstrcpy (windows函式);

考慮ansi和unicode的相容,我們需要使用以_tcs開頭或lstr開頭的通用字串操作函式。

在VC6 0下設定Unicode編譯環境

vc 6.0支援unicode程式設計,但預設的是ansi,所以開發人員只需要稍微改變一下編寫 的習慣便可以輕鬆編寫支援unicode的應用程式。使用vc 6.0進行unicode程式設計主要做以下幾項工作 1 為工程新增unicode和 unicode預處理選項。具體步驟 開啟 工程 設定 對話方...

在VC6 0下設定Unicode編譯環境

vc 6.0支援unicode程式設計,但預設的是ansi,所以開發人員只需要稍微改變一下編寫 的習慣便可以輕鬆編寫支援unicode的應用程式。使用vc 6.0進行unicode程式設計主要做以下幾項工作 1 為工程新增unicode和 unicode預處理選項。具體步驟 開啟 工程 設定 對話方...

在VC6 0下設定Unicode編譯環境

vc 6.0支援unicode程式設計,但預設的是ansi,所以開發人員只需要稍微改變一下編寫 的習慣便可以輕鬆編寫支援unicode的應用程式。使用vc 6.0進行unicode程式設計主要做以下幾項工作 1 為工程新增unicode和 unicode預處理選項。具體步驟 開啟 工程 設定 對話方...