青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

love in C++, live on MFC

to get ready...

C++博客 首頁 新隨筆 聯系 聚合 管理
  47 Posts :: 0 Stories :: 97 Comments :: 0 Trackbacks

動機 : 在沒有裝中文字體的機器上顯示中文

如果不是unicode,某些中文字符會在不同的codepage上出現亂碼;如果當前codepage為韓文時,某些中文字會變成韓文的樣子,奇怪.

Step1: define _UNICODE, undefine _MBCS

宏定義UNICODE, _UNICODE定義兩個也可以,定義一個也可以,windows的頭文件會保證兩個都會被定義.

#ifdef?_UNICODE
#ifndef?UNICODE
#define ?UNICODE? // ?UNICODE?is?used?by?Windows?headers

#endif
#endif

?
#ifdef?UNICODE
#ifndef?_UNICODE
#define ?_UNICODE???????? // ?_UNICODE?is?used?by?C-runtime/MFC?headers
#endif
#endif

?

Step2: 更改變量類型

比如 char -> TCHAR

但是 ,并不是說所有的char類型都不能用了.如果需要用,并且函數的參數/返回值什么的都不沖突,char類型還是可以用的.

Step3: 更改常量字符串形式

" abc " -> _T(" abc ")

因為開始寫程序時沒有注意 ,造成這樣的常量字符串形式非常多,一個個改起來很煩,我寫了個小插件,可以講 abc 選中后點一下 button就能變成_T( abc ),有點用,代碼也非常的短.

Step4: 替換某些函數

比如atoi -> _ttoi

在這里遇到一個問題,就是atof的替換.

按照msdn, atof應該被_ttof替換

TCHAR.H routine

_UNICODE & _MBCS not defined

_MBCS defined

_UNICODE defined

_tstof

atof

atof

_wtof

但是奇怪的是,VC6里面不認識_tstof這個函數,VC.net 2003就可以.

有兩個解決的辦法:

1)????? 因為atof只是替換為浮點數,所以這里用WideCharToMultiByte轉化一下之后再調用atof也是可行的

2)????? 呵呵,strtod的替換函數_tcstod,哈哈,當然參數要變一下,我覺得這個方法不錯,不要被msdn限制死了

Step5: 檢查一下調用其他 dll 的接口函數

因為項目還用了另外一個dll,其中有些接口需要char*參數,這個時候就必須用WideCharToMultiByte轉換一下了.

VC里面的設置:
1) 等把所有的編譯error改完了之后一編譯,除了個link錯誤,不過msdn有解釋:
If you are using Unicode and MFC, you will get an unresolved external on _WinMain@16 if you don’t create an entrypoint to wWinMainCRTStartup. Use the /ENTRY option or type this value in the Project Settings dialog box. (To find this option in the development environment, click Settings on the Project menu, then click the Link tab, and click Output in the Category box.)

2)終于編譯成功了,調試的時候卻發現CString的值不能在QuickWatch窗口中顯示了
tools->option->
in the debug tab u can find a check box Labeled "Display unicode strings"
Check it.

問題 : 直接用 ANSI dll 中的 CString

在使用dll的時候,需要直接使用dll中的一個變量,CString類型,因為這個dll還沒有改為unicode,所以在直接使用其變量時有點問題,使得值不對.(是不是這個原因還沒有完全驗證,應該是的)

到這里 , 宣布移植失敗 !

/*補充:
結果是失敗,但是基本移植代碼的所有步驟都有了。而且,也指出了如果需要調用的dll不是unicode,每次調用/傳遞參數時,都要轉換,很煩。
后來我把dll的代碼也移植了下,現在運行的很好,韓文、中文都可以顯示,不管你當前語言是什么。
*/

還有一篇講移植步驟的,更全面,適合更復雜的情況:
Cheat Sheet:Unicode-enabling Microsoft C/C++ Source Code (http://www.i18nguy.com/unicode/c-unicode.html)

?

posted on 2006-05-18 16:09 flyingxu 閱讀(3261) 評論(6)  編輯 收藏 引用 所屬分類: VC/MFCBug of Today

Feedback

# re: 把代碼移植成UNICODE 2006-05-19 09:47 沐楓
狂暈。看了半天,來了一句“失敗”!!!  回復  更多評論
  

# re: 把代碼移植成UNICODE 2006-05-22 23:48 flyingxu
@沐楓
呵呵,結果是失敗,但是基本移植代碼的所有步驟都有了。而且,也指出了如果需要調用的dll不是unicode,每次調用/傳遞參數時,都要轉換,很煩。
后來我把dll的代碼也移植了下,現在運行的很好,韓文、中文都可以顯示,不管你當前語言是什么。
  回復  更多評論
  

# re: 把代碼移植成UNICODE 2009-12-09 17:29 wzyzb@qq.com
@flyingxu
你的那個小程序能不能發給我用下 有源碼更好 先謝了,  回復  更多評論
  

# re: 把代碼移植成UNICODE 2009-12-09 17:30 wzyzb@qq.com
我的郵箱wzyzb@qq.com  回復  更多評論
  

# re: 把代碼移植成UNICODE 2010-01-08 20:00 tyt2008cn
樓主,拜求那個替換 "abc"為_T("abc")的小工具,
正準備把一個MFC工程移植為UNICODE,杯具中,我的郵箱tyt2008cn@126.com, 先謝過了!  回復  更多評論
  

# re: 把代碼移植成UNICODE[未登錄] 2010-11-19 16:23 jacky
我這里也有個工具,請看:
http://hi.baidu.com/qiujiejia/blog/item/46057f2bacf7abeae7cd407b.html

和:
http://hi.baidu.com/qiujiejia/blog/item/4af2261bbeba5deaaf5133bf.html  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            这里只有精品视频在线| 这里只有精品丝袜| 久久久亚洲人| 久久久久久午夜| 在线日韩av| 欧美xx视频| 欧美大片一区| 在线亚洲一区| 亚洲欧美日韩国产综合| 国产一区二区三区的电影 | 欧美日韩 国产精品| 99精品福利视频| 一区二区三区日韩在线观看| 国产精品久久久久久久免费软件 | 亚洲一区二区三区精品动漫| 中文无字幕一区二区三区| 国产伦精品一区二区三区照片91| 久久久久国产成人精品亚洲午夜| 美女视频网站黄色亚洲| 一区二区三区 在线观看视频| 日韩视频免费观看| 国产综合色在线| 91久久线看在观草草青青| 欧美日韩综合在线| 久久久亚洲影院你懂的| 欧美成年网站| 久久精精品视频| 欧美激情成人在线视频| 欧美一区二视频在线免费观看| 久久久久久久波多野高潮日日 | 国产精品一区一区| 欧美大片免费| 国产精品豆花视频| 欧美电影打屁股sp| 国产精品制服诱惑| 亚洲黄色在线| 伊人精品久久久久7777| 夜夜精品视频| 亚洲精品国产日韩| 欧美在线视频不卡| 亚洲影视综合| 欧美福利电影网| 美女国内精品自产拍在线播放| 欧美日韩另类国产亚洲欧美一级| 老司机午夜精品视频在线观看| 欧美日韩免费在线| 欧美国产日韩精品免费观看| 国产一区二区按摩在线观看| 一本色道久久综合亚洲精品婷婷 | 狠狠色丁香久久综合频道| av不卡在线| 日韩亚洲在线| 欧美电影免费观看| 免费中文日韩| 国产日本欧美一区二区三区在线| 日韩一级大片| 一本久久综合亚洲鲁鲁| 免费成人高清| 欧美激情91| 在线观看欧美| 久久久久久久一区二区| 久久成年人视频| 国产日韩欧美一区| 亚洲——在线| 久久爱www久久做| 国产精品色在线| 亚洲午夜一级| 新狼窝色av性久久久久久| 国产精品成人一区二区网站软件 | 欧美在线免费视频| 国产精品日日摸夜夜添夜夜av| 99天天综合性| 午夜欧美理论片| 国产毛片精品国产一区二区三区| 亚洲一区二区伦理| 久久精品国产亚洲5555| 国产主播一区二区| 久久久91精品| 欧美黑人在线播放| 日韩一本二本av| 国产精品成人aaaaa网站| 在线视频欧美一区| 久久精品免费观看| 在线观看日韩www视频免费| 久久综合伊人77777| 亚洲清纯自拍| 中日韩美女免费视频网址在线观看| 欧美日韩国产综合视频在线| 制服诱惑一区二区| 久久精品人人做人人爽电影蜜月| 亚洲看片一区| 一区二区日韩免费看| 国产精品久久久久久久午夜片| 亚洲中字黄色| 欧美a级理论片| 一本一本a久久| 国产精品―色哟哟| 久久亚洲国产精品一区二区| 亚洲国产精品久久久久秋霞影院 | 怡红院精品视频| 欧美成人免费小视频| 一区二区免费在线视频| 久久夜色撩人精品| 一区二区三区四区国产精品| 国产欧美一区二区精品秋霞影院| 六月婷婷一区| 亚洲在线视频观看| 欧美激情亚洲自拍| 亚洲综合色网站| 亚洲国产色一区| 国产乱子伦一区二区三区国色天香 | 亚洲高清资源| 国产精品国产三级国产普通话三级 | 亚洲高清av在线| 欧美一区日本一区韩国一区| 亚洲精品在线看| 国产视频综合在线| 欧美日韩一区二区三区在线观看免 | 在线中文字幕一区| 欧美福利一区二区三区| 欧美亚洲综合久久| 99热免费精品| 亚洲国产经典视频| 国产在线日韩| 国产精品网红福利| 欧美色图一区二区三区| 另类专区欧美制服同性| 欧美一区二区高清| 一本色道久久综合狠狠躁篇的优点| 狂野欧美激情性xxxx欧美| 欧美一区不卡| 亚洲在线观看| 亚洲视频网站在线观看| 亚洲另类一区二区| 在线免费日韩片| 一区二区在线不卡| 国产一区自拍视频| 国产亚洲综合精品| 国产精品国产三级国产普通话99 | 国产日韩av在线播放| 欧美色图五月天| 欧美日韩午夜在线视频| 欧美日韩国产精品| 欧美精品一区二区三区很污很色的 | 亚洲一区二区不卡免费| 99精品国产一区二区青青牛奶| 亚洲国产精品久久久久秋霞蜜臀| 欧美大片在线观看一区二区| 欧美成人免费小视频| 免费日本视频一区| 嫩草成人www欧美| 欧美成人久久| 亚洲第一中文字幕在线观看| 欧美成人精品在线观看| 欧美激情一区二区三区在线视频 | 亚洲一区二区三区在线看 | 在线不卡中文字幕| 在线欧美日韩| 亚洲精品一区二区三| 夜夜嗨av一区二区三区| 亚洲性感美女99在线| 欧美一区二区三区电影在线观看| 久久成年人视频| 欧美jjzz| 一本色道久久综合亚洲精品高清 | 亚洲欧美日本在线| 久久精品视频免费播放| 美玉足脚交一区二区三区图片| 免费成人av| 欧美性猛交一区二区三区精品| 国产精品三区www17con| 激情综合久久| 日韩视频在线观看一区二区| 亚洲女女女同性video| 久久免费黄色| 亚洲精品久久久久久下一站| 亚洲自拍偷拍福利| 久久综合伊人77777麻豆| 欧美日韩在线播放三区四区| 国产区日韩欧美| 91久久夜色精品国产九色| 亚洲伊人网站| 欧美高清影院| 亚洲视频高清| 蜜臀av性久久久久蜜臀aⅴ| 欧美性片在线观看| 亚洲高清资源综合久久精品| 亚洲午夜电影| 欧美va日韩va| 亚洲女同精品视频| 欧美激情中文不卡| 国产一区二区高清不卡| 一二三区精品| 嫩草影视亚洲| 欧美一区二区啪啪| 欧美午夜不卡视频| 亚洲激情视频网站| 久久综合久久综合这里只有精品| 亚洲裸体俱乐部裸体舞表演av| 久久免费一区|