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

love in C++, live on MFC

to get ready...

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

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

如果不是unicode,某些中文字符會在不同的codepage上出現(xiàn)亂碼;如果當前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類型都不能用了.如果需要用,并且函數(shù)的參數(shù)/返回值什么的都不沖突,char類型還是可以用的.

Step3: 更改常量字符串形式

" abc " -> _T(" abc ")

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

Step4: 替換某些函數(shù)

比如atoi -> _ttoi

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

按照msdn, atof應(yīng)該被_ttof替換

TCHAR.H routine

_UNICODE & _MBCS not defined

_MBCS defined

_UNICODE defined

_tstof

atof

atof

_wtof

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

有兩個解決的辦法:

1)????? 因為atof只是替換為浮點數(shù),所以這里用WideCharToMultiByte轉(zhuǎn)化一下之后再調(diào)用atof也是可行的

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

Step5: 檢查一下調(diào)用其他 dll 的接口函數(shù)

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

VC里面的設(shè)置:
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)終于編譯成功了,調(diào)試的時候卻發(fā)現(xiàn)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,所以在直接使用其變量時有點問題,使得值不對.(是不是這個原因還沒有完全驗證,應(yīng)該是的)

到這里 , 宣布移植失敗 !

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

還有一篇講移植步驟的,更全面,適合更復(fù)雜的情況:
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 閱讀(3254) 評論(6)  編輯 收藏 引用 所屬分類: VC/MFCBug of Today

Feedback

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

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

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

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

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

# 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  回復(fù)  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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网站| 一区二区三区久久精品| 欧美视频不卡| 国产精品日韩在线| 国产精品永久| 国产欧美日韩视频一区二区三区 | 久久亚洲视频| 女主播福利一区| 欧美日本久久| 国产欧美亚洲精品| 久久国产精品毛片| 欧美激情精品久久久六区热门| 欧美成人免费va影院高清| 欧美日韩国产麻豆| 国产欧亚日韩视频| 91久久国产自产拍夜夜嗨 | 午夜视频在线观看一区二区| 欧美一区二区| 欧美高清视频www夜色资源网| 亚洲高清免费| 亚洲一区二区高清| 噜噜噜91成人网| 欧美三级在线视频| 樱桃成人精品视频在线播放| 中文欧美字幕免费| 蜜桃久久精品一区二区| 在线综合亚洲| 欧美电影免费观看高清| 国产一区日韩二区欧美三区| 亚洲最新在线视频| 欧美成人免费在线观看| 午夜精品久久久久99热蜜桃导演| 欧美成人免费在线| 韩日精品视频| 最新日韩av| 亚洲一线二线三线久久久| 久久久久9999亚洲精品| 欧美一级在线亚洲天堂| 久久夜色精品亚洲噜噜国产mv| 久久xxxx| 亚洲一区免费网站| 欧美精品一区二区三区很污很色的| 国产欧美综合一区二区三区| 国产精品五区| 亚洲国产精品综合| 久久久久**毛片大全| 亚洲视频精品在线| 欧美日韩国产免费| 亚洲精选久久| 亚洲电影免费观看高清完整版在线 | 艳女tv在线观看国产一区| 久久影视精品| 影音先锋久久资源网| 久久亚洲春色中文字幕| 性欧美8khd高清极品| 欧美视频在线一区| 久久久久久97三级| 亚洲综合成人婷婷小说| 欧美午夜免费影院| 亚洲主播在线观看| 亚洲午夜电影网| 国产精品久久久久高潮| 亚洲尤物在线视频观看| 亚洲一二三四区| 国产亚洲成av人片在线观看桃| 亚洲欧美一区二区三区久久| 亚洲图片自拍偷拍| 国产网站欧美日韩免费精品在线观看| 香蕉久久夜色精品| 久久狠狠一本精品综合网| 狠狠爱www人成狠狠爱综合网| 久久网站热最新地址| 麻豆精品视频| 中日韩美女免费视频网址在线观看| 最新日韩在线视频| 国产精品v片在线观看不卡| 亚洲欧美一区二区三区久久 | 亚洲久久一区| 久久中文字幕导航| 欧美精品激情blacked18| 亚洲韩国日本中文字幕| 亚洲一线二线三线久久久| 亚洲国产婷婷综合在线精品| 在线亚洲欧美视频| 国产亚洲毛片在线| 久久先锋资源| 亚洲国产精品v| 亚洲精品久久久久中文字幕欢迎你| 欧美理论电影在线观看| 亚洲性色视频| 欧美伊久线香蕉线新在线| 亚洲国产精品久久久久秋霞不卡 | 国产亚洲一区在线播放| 欧美~级网站不卡| 欧美体内谢she精2性欧美| 欧美在线视频观看免费网站| 久色婷婷小香蕉久久| 亚洲一区精品在线| 老巨人导航500精品| 亚洲欧美文学| 欧美日韩成人综合天天影院| 狼狼综合久久久久综合网 | 欧美国产精品劲爆| 91久久久久久久久久久久久| 国产精品久久久爽爽爽麻豆色哟哟| 久久精品中文字幕一区| 欧美黄色一区| 久久久久成人网| 欧美日韩亚洲一区二区三区四区| 性欧美在线看片a免费观看| 欧美成人午夜视频| 久久亚洲精品网站| 国产精品日韩在线观看| 亚洲激情在线视频| 激情久久久久久久久久久久久久久久| 亚洲日本电影| 亚洲国产美女久久久久| 欧美一级视频免费在线观看| 国产精品99久久久久久久vr| 午夜视频一区| 在线观看精品视频| 激情六月婷婷综合| 欧美精品videossex性护士| 正在播放亚洲一区| 欧美a级一区二区| 中文av字幕一区| 亚洲精品系列| 亚洲国产精品成人综合| 国产精品成人在线观看| 久久精品一本| 性欧美超级视频| 亚洲制服少妇| 欧美日韩激情小视频| 欧美激情无毛| 亚洲精品久久久久久一区二区| 久久视频一区| 欧美电影美腿模特1979在线看| 激情成人在线视频| 久热re这里精品视频在线6| 免费在线视频一区| 亚洲福利精品| 欧美精品一区在线发布| 亚洲精品综合在线| 亚洲夜间福利| 国产农村妇女精品一区二区| 性做久久久久久| 久久美女性网| 在线看视频不卡| 欧美精品97| 亚洲网在线观看| 久久久久**毛片大全| 在线观看一区| 欧美精品一区二区三区视频| 99国产精品国产精品久久| 亚洲自拍啪啪| 国产在线拍揄自揄视频不卡99| 久久久免费精品视频| 亚洲国产综合在线看不卡| 久久天堂av综合合色| 在线观看精品一区| 欧美激情导航| 中日韩午夜理伦电影免费| 久久高清免费观看| 亚洲精品日韩激情在线电影| 国产精品观看| 久久久蜜桃一区二区人| 亚洲精品中文字幕在线| 久久精品一区二区国产| 亚洲国语精品自产拍在线观看| 欧美午夜激情在线| 久久精品中文字幕一区| 一本色道久久综合亚洲91| 老司机精品视频网站| 亚洲一区二区视频在线| 尤物在线观看一区| 国产精品大片wwwwww| 看片网站欧美日韩| 亚洲男人第一av网站| 亚洲激情一区| 老司机亚洲精品| 亚洲男女自偷自拍| 最近看过的日韩成人| 国产婷婷色一区二区三区在线 | 毛片av中文字幕一区二区| 妖精视频成人观看www| 久久综合影音| 性一交一乱一区二区洋洋av| 亚洲精品中文字| 国模精品一区二区三区| 欧美日韩综合在线免费观看| 免费在线国产精品| 欧美亚洲一区二区在线| 亚洲美女视频网| 欧美激情久久久| 久久综合伊人77777麻豆| 欧美一区成人| 中文网丁香综合网| 一区二区三区四区五区精品| 91久久久在线|