1.使用widechartomultibyte
// 假設已經有了乙個unicode 串 wszsomestring...
char szansistring [max_path];
widechartomultibyte ( cp_acp, wc_compositecheck, wszsomestring, -1, szansistring, sizeof(szansistring), null, null );
2.使用w2a巨集來實現(可能會出現棧溢位,不要在迴圈中使用,最好是單獨定義乙個函式來實現。)
#include
uses_conversion;
ptemp=w2a(wszsomestring);
使用multibytetowidechar
char *szprogid = "mapi.folder";
wchar szwideprogid[128];
clsid clsid;
long llen = multibytetowidechar(cp_acp,0,szprogid,strlen(szprogid),szwideprogid,sizeof(szwideprogid));
szwideprogid[llen] = '/0';
2.通過a2w巨集來實現(可能會出現棧溢位,不要在迴圈中使用,最好是單獨定義乙個函式來實現。)
#include
uses_conversion;
clsidfromprogid( a2w(szprogid),&clsid);
3.通過l這個巨集來實現
clsidfromprogid( l"mapi.folder",&clsid);
UNICODE與MBCS等字元問題
vs2008預設的字符集是unicode,而vc6.0預設是多位元組字符集,unicode字符集你要加 t 或l 你也可以 工程 屬性 修改字符集 unicode 它是用兩個位元組表示乙個字元的方法。比如字元 a 在ascii下面是乙個字元,可 a 在unicode下面是 兩個字元,高字元用0填充,...
Unicode 和多位元組字符集 MBCS
有些國際市場以大字符集來使用日文和中文等語言。為了支援這些市場的程式設計,microsoft 基礎類庫 mfc 支援以兩種方式處理大字符集 unicode 多位元組字符集 mbcs unicode 字串的 mfc 支援 整個類庫有條件地支援 unicode 字元和字串。特別是 cstring 類也支...
Unicode和多位元組字符集 MBCS 雜談
這個估計是很多人曾經頭疼過的問題,現在的vc版本基本都支援unicode和多位元組字符集 mbcs 在進行mfc程式設計時vc的預設設定是unicode字符集。但是我們通常需要做一些 移植的工作,如果將多位元組字符集下的程式 移植到unicode字符集環境中,就需要針對此做出很多態別的轉換,反之亦然...