小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

在VC6.0下設(shè)置Unicode編譯環(huán)境

 gold 2008-08-19

在VC6.0下設(shè)置Unicode編譯環(huán)境 - 冷秋魂的專欄 - CSDNBlog


VC++ 6.0支持Unicode編程,但默認的是ANSI,所以開發(fā)人員只需要稍微改變一下編寫代碼的習(xí)慣便可以輕松編寫支持UNICODE的應(yīng)用程序。
  使用VC++ 6.0進行Unicode編程主要做以下幾項工作:

1、為工程添加UNICODE和_UNICODE預(yù)處理選項。

  具體步驟:打開[工程]->[設(shè)置…]對話框,在C/C++標簽對話框的“預(yù)處理程序定義”中去除_MBCS,加上_UNICODE,UNICODE。(注意中間用逗號隔開).

  在沒有定義UNICODE和_UNICODE前,所有函數(shù)和類型都默認使用ANSI的版本;在定義了UNICODE和_UNICODE之后,所有的MFC類和Windows API都變成了寬字節(jié)版本了。

2、設(shè)置程序入口點

  因為MFC應(yīng)用程序有針對Unicode專用的程序入口點,我們要設(shè)置entry point。否則就會出現(xiàn)連接錯誤。
  設(shè)置entry point的方法是:打開[工程]->[設(shè)置…]對話框,在Link頁的Output類別的Entry Point里填上wWinMainCRTStartup。

3、使用ANSI/Unicode通用數(shù)據(jù)類型

  微軟提供了一些ANSI和Unicode兼容的通用數(shù)據(jù)類型,我們最常用的數(shù)據(jù)類型有_T ,TCHAR,LPTSTR,LPCTSTR。
順便說一下,LPCTSTR和const TCHAR*是完全等同的。其中L表示long指針,這是為了兼容Windows 3.1等16位操作系統(tǒng)遺留下來的,在Win32 中以及其它的32位操作系統(tǒng)中,long指針和near指針及far修飾符都是為了兼容的作用,沒有實際意義。P(pointer)表示這是一個指針;C (const)表示是一個常量;T(_T宏)表示兼容ANSI和Unicode,STR(string)表示這個變量是一個字符串。綜上可以看出, LPCTSTR表示一個指向常固定地址的可以根據(jù)一些宏定義改變語義的字符串。比如:

TCHAR* szText=_T(“Hello!”);TCHAR szText[]=_T(“I Love You”);LPCTSTR lpszText=_T(“大家好!”);使用函數(shù)中的參數(shù)最好也要有變化,比如:MessageBox(_T(“你好”));

  其實,在上面的語句中,即使您不加_T宏,MessageBox函數(shù)也會自動把“你好”字符串進行強制轉(zhuǎn)換。但我還是推薦您使用_T宏,以表示您有Unicode編碼意識。

4、修改字符串運算問題

  一些字符串操作函數(shù)需要獲取字符串的字符數(shù)(sizeof(szBuffer)/sizeof(TCHAR)),而另一些函數(shù)可能需要獲取字符串的字節(jié)數(shù)sizeof(szBuffer)。您應(yīng)該注意該問題并仔細分析字符串操作函數(shù),以確定能夠得到正確的結(jié)果。
ANSI操作函數(shù)以str開頭,如strcpy(),strcat(),strlen();
Unicode操作函數(shù)以wcs開頭,如wcscpy,wcscpy(),wcslen();
ANSI/Unicode操作函數(shù)以_tcs開頭 _tcscpy(C運行期庫);
ANSI/Unicode操作函數(shù)以lstr開頭 lstrcpy(Windows函數(shù));
考慮ANSI和Unicode的兼容,我們需要使用以_tcs開頭或lstr開頭的通用字符串操作函數(shù)。

六、舉個Unicode編程的例子

第一步:
  打開VC++6.0,新建基于對話框的工程Unicode,主對話框IDD_UNICODE_DIALOG中加入一個按鈕控件,雙擊該控件并添加該控件的響應(yīng)函數(shù):

void CUnicodeDlg::OnButtonUnicode() { TCHAR* str1=_T("ANSI和UNICODE編碼試驗"); m_disp=str1; UpdateData(FALSE);}  添加靜態(tài)文本框IDC_DISP,使用ClassWizard給該控件添加CString類型變量m_disp。使用默認ANSI編碼環(huán)境編譯該工程,生成Unicode.exe。

第二步:修改系統(tǒng)內(nèi)碼
  打開“控制面板”,單擊“日期、時間、語言和區(qū)域設(shè)置”選項,在“日期、時間、語言和區(qū)域設(shè)置”窗口中繼續(xù)單擊“ 區(qū)域和語言選項”選項,彈出“區(qū)域和語言選項”對話框。在該對話框中,單擊“高級”標簽,將“非Unicode的程序的語言”選項改為“日語”,單擊“應(yīng) 用”按鈕,

彈出的對話框單擊“是”,重新啟動計算機使設(shè)置生效。
運行Unicode.exe程序并單擊“Button1”按鈕,看,靜態(tài)文本框出現(xiàn)了亂碼。

第三步:
  改為Unicode編碼環(huán)境編譯該工程,生成Unicode.exe。再次運行Unicode.exe程序并單擊“Unicode”按鈕??吹?strong>Unicode編碼的優(yōu)勢了吧。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多