<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            Unicode編程類筆試題

            時間:2020-07-21 14:15:10 筆試題目 我要投稿

            Unicode編程類筆試題

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

            Unicode編程類筆試題

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

                其實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庫字符串操作函數也做相應的替換,比如

            strlen ->_tcslen

            strcat ->_tcscat

            strcmp ->_tcscmp

            ......

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

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

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

             

             

            【Unicode編程類筆試題】相關文章:

            360筆試題目07-11

            華為2017筆試題08-16

            JAVA編程面試題及答案09-16

            it職業編程語言類英語詞匯10-09

            華為2017筆試試題08-10

            桂林銀行筆試題筆經07-20

            一個C/C++編程面試題12-20

            數控機床編程與操作考試題及答案09-30

            數控機床編程與操作試題庫及答案09-30

            探索結對編程08-20

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看