code::blocks gcc wxwidgets wxsmith糾結的漢字

下面的文字引自:http://hi.baidu.com/cenxcen/blog/item/1f6e021fa503930d403417ad.html

在這裏只是做一下引用,防止以後忘記.

 

code::blocks gcc wxwidgets wxsmith糾結的漢字
2011-01-03 17:36

code::blocks 10.05

mingw gcc 4.4.1

wxwidgets 2.9.1

windows xp

在code blocks中將編碼設置爲默認(settings -> editor... -> general settings -> encoding -> default),這是源代碼文件將被保存爲ansi格式。在這種格式下使用wxwidgets時,中文無需任何處理,直接在代碼中寫在雙引號中即可。程序運行時可以正常顯示和處理。當然wxwidgets編譯時需要支持uncode。並不像有人說的需要設置個附加的編譯選項 " -finput-charset=GBK "。

如果把默認編碼設置爲windows-936,那麼_("漢字")這樣的文字都無法編譯。必須要設置個附加的編譯選項 " -finput-charset=GBK "纔可以正常編譯。

wxSmith設計的界面元素中的漢字大部分默認生成的代碼形如  _("漢字") 這樣。如果編碼默認設置爲utf-8,那麼可以正常編譯,但是顯示是亂碼。自己寫的代碼如果使用形如 _T("漢字") 來處理漢字,在utf8編碼下可以正常顯示。可以修改codeblocks項目文件(*.cbp文件)來讓它默認生成_T的字符串,參見:

      <Extensions>
         <code_completion />
         <debugger />
         <wxsmith version="1">
            <gui name="wxWidgets" src="sssApp.cpp" main="sssFrame" init_handlers="necessary" language="CPP" />
            <resources>
               <wxFrame wxs="wxsmith/sssframe.wxs" src="sssMain.cpp" hdr="sssMain.h"fwddecl="1" i18n="0" name="sssFrame" language="CPP" />
               <wxDialog wxs="wxsmith/NewDialog.wxs" src="NewDialog.cpp" hdr="NewDialog.h"fwddecl="1" i18n="0" name="NewDialog" language="CPP" />
               <wxPanel wxs="wxsmith/NewPanel.wxs" src="NewPanel.cpp" hdr="NewPanel.h"fwddecl="1" i18n="0" name="NewPanel" language="CPP" />
            </resources>
         </wxsmith>
      </Extensions>

控制檯項目(xp下運行的)需要附加編譯選項 " -finput-charset=GBK ",因爲windows xp的控制檯默認編碼是gbk,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章