将一个工程改为支持unicode。有什么好的办法?

madhappy 2004-12-04 01:35:53
工程源文件一份。

需要对其改动,使之支持Unicode.怎么做?

请各位指点?
...全文
298 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
J 2004-12-07
  • 打赏
  • 举报
回复
找MSDN的索引:TCHAR.H 映射

看了你就全明白了
yszmax 2004-12-07
  • 打赏
  • 举报
回复
关注
oyljerry 2004-12-07
  • 打赏
  • 举报
回复
数据类型 说明
WCHAR Unicode字符
PWSTR 指向Unicode字符串的指针
PCWSTR 指向一个恒定的Unicode字符串的指针
对应的ANSI数据类型为CHAR,LPSTR和LPCSTR。
ANSI/Unicode通用数据类型为TCHAR,PTSTR,LPCTSTR。
kingzai 2004-12-07
  • 打赏
  • 举报
回复
hwo to convert MBCS to Unicode?
see
http://www.codeproject.com/cpp/unicode.asp
madhappy 2004-12-07
  • 打赏
  • 举报
回复
楼上的,定义WCHAR以后就不能以其它编码类型编译了。这样做得不好的!
bobob 2004-12-07
  • 打赏
  • 举报
回复
#define char WCHAR
yszmax 2004-12-07
  • 打赏
  • 举报
回复
感谢楼主
tabris17 2004-12-07
  • 打赏
  • 举报
回复
如果代码里用的是char而不是TCHAR的话……

楼主,你慢慢改吧
没别的办法
madhappy 2004-12-07
  • 打赏
  • 举报
回复
这几天看了一些文章,总结一下。

1 将所有的chat转换为TCHAR

2 将所有类似于LPSTR, LSTR的宏,改为LPTSTR

3 给所有的常量字符串例如: “hello world!”加上宏_T()非MFC工程里面见面加上L 如:_T(“hello world!”)

4 使用_tcsr前缀宏来替换strrchr()、_mbsrchr()和wcsrchr().等字符串函数。

5 使用类似于_stprintf(代替sprinft()和swprintf()),_tfopen(代替fopen()和_wfopen())等函数。

6 若想工程支持UNICODE还需要,在预编译选项里面加上_UNICODE, UNICODE

7 若工程出现问题,查找对字符串的处理是否用了++ -- 等操作。这样是不规范的,应当代替用charnext()等函数

8 若此时工程仍然有问题,仔细调试代码吧……我也希望只要简单的几步就能够解决问题。可是我不会……那位高人有办法。支两招吧……
Mr-Chen 2004-12-07
  • 打赏
  • 举报
回复
定义了UNICODE宏,系统就会自动切换到UNICODE版本
当然只定义了宏并不能实现自动的转换,他还需要一系列的字符定义支持。
TCHAR被定义为wchar_t
LPTSTR被定义为LPWSTR
在使用字符串常量的时候需要使用_TEXT(“MyStr”)来支持系统的自动转换
使用MultiByteToWideChar
smallcrocodile 2004-12-07
  • 打赏
  • 举报
回复
关注
powerbamboo 2004-12-07
  • 打赏
  • 举报
回复
使用_T(),TCHAR,LPCTSTR,LPTSTR等等替换原来的内容。高效合理的使用正则表达式可以节省人力。
madhappy 2004-12-06
  • 打赏
  • 举报
回复
顶一下
madhappy 2004-12-04
  • 打赏
  • 举报
回复
如果纯粹是美语,那么8位足够了。

但是对于亚洲字符。则需要两位以上去存储字符。这是概念性的东西/。

现在我面对的是源代码。看到的是CString;是LPSTR; 看到的是char *szXXX;看到的是"const string";
我该怎么做?

oyljerry 2004-12-04
  • 打赏
  • 举报
回复
TCHAR
MultiByteToWideChar
oyljerry 2004-12-04
  • 打赏
  • 举报
回复
一般对于中文,日文,韩文等需要用unicode格式
madhappy 2004-12-04
  • 打赏
  • 举报
回复
楼上的那个不用太担心的。可以专门写程序处理的阿

问题是那些地方应该处理,怎么处理好/

那位高人总结一下,或介绍点文章啊。
ttfy1234 2004-12-04
  • 打赏
  • 举报
回复
好象比较困难哦。里面原先如果有很多字符串,一个个来不可想象——+_+
EnochShen 2004-12-04
  • 打赏
  • 举报
回复
在字符转换的时候用
int MultiByteToWideChar(
UINT CodePage, // code page
DWORD dwFlags, // character-type options
LPCSTR lpMultiByteStr, // address of string to map
int cchMultiByte, // number of bytes in string
LPWSTR lpWideCharStr, // address of wide-character buffer
int cchWideChar // size of buffer
);
LPCSTR -> LPWSTR
Trashy 2004-12-04
  • 打赏
  • 举报
回复
关注、学习!
加载更多回复(3)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧