WEB开发网
开发学院软件开发VC 在VC++中应当注意对VC字符集的设置 阅读

在VC++中应当注意对VC字符集的设置

 2008-11-12 19:26:30 来源:WEB开发网   
核心提示: CString strWideChar;strWideChar.Format(_T(“这是宽字节哦”));char buf[20];memset(buf,0,20);WideCharToMultiByte( //转换Unicode到AnsiCP_ACP,WC_COM

CString strWideChar;
strWideChar.Format(_T(“这是宽字节哦”));
char buf[20];
memset(buf,0,20);
WideCharToMultiByte( //转换Unicode到Ansi
CP_ACP,
WC_COMPOSITECHECK | WC_DEFAULTCHAR,
strWideChar,
strWideChar.GetLength(),
(char *)buf, //转换到缓冲区中
20, //最多个字节
0,
0
);

同样的,你接收到的字符串想要在界面正常显示,还必须把它转换成宽字节表示:

char chBytes[8];
memcpy(chBytes,”aaaaaaa”,8);
WCHAR wch[9];
n = MultiByteToWideChar( //转换Unicode到Ansi
CP_ACP,
0,
chBytes,
8,
wch, //转换到缓冲区中
8 //最多个字节
);
wch[n] = '';

这样每次从界面取数据和把数据显示到界面上都要先做处理,但是也可以把编译环境设置成“多字符集”(Multi-Byte Character Set),就可以避免这样转换来转换去(可惜我发现的时候代码已经差不多写完了)。就是在“Project->Configuration Properties->General->Character Set,选择”Use Unicode Character Set“就是使用Uncode字符集,选择” Use Multi-Byte Character Set“就是多字节字符集。

第二次中招,god,花了我好长时间才找到问题:

我在CodeProject上找了一个很厚道的老外写的一个继承了CDialog窗体类CResizableDialog的源码,这个类的作用是使MFC的窗体放大缩小时,窗体上的控件可以定位(Auchor),不要小看这个小小的每天都要用到的功能,用MFC实现真的很麻烦。很佩服那个老外写了那么多代码(当然跟他们的条件有关,资本主义国家的工人随便找个工作就可以衣食无忧,病了政府照顾,我们做“挨踢”的活得像民工一样,当然没有那个闲情去写那么好的代码免费给别人使用,这是题外话)。

上一页  1 2 3 4  下一页

Tags:VC 应当 注意

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接