- 主题:【请教】适配GB18030程序改造
原来使用VS6开发的MFC程序,只支持GBK编码,如果要适配GB18030四字节汉字,是不是只能升级开发环境到VS2013以上,并且使用Unicode字符集了。
--
FROM 117.107.131.*
我记得 win32api 这一层已经搞定了。你不需要适配。除非你用的是 CreateWindowA 这样的 API ,而不是 CreateWindowW().
windows 内部其实不认 gbk/gb18030 编码,而是统一 utf-16,所以你不需要管 GDI 的显示效果,它会自动处理 UNICODE 的显示——不过我听说 GDI 不支持表情符,需要使用 Direct2D.
【 在 zhifei 的大作中提到: 】
: 原来使用VS6开发的MFC程序,只支持GBK编码,如果要适配GB18030四字节汉字,是不是只能升级开发环境到VS2013以上,并且使用Unicode字符集了。
--
FROM 117.24.94.*
GB18030是一种Unicode方言,要完整支持GB18030,必须是Unicode应用程序才行。
VC++ 6.0就支持Unicode,并不是非得升级到VS2013。
如果决定升级语言开发环境,建议直接升级到VS2022。
--
FROM 171.88.149.*
不用换编译器都可以的,但是vc6工程的编译选项里要改成unicode,不要用ansi(multi-byte)模式编译。
如果以前是ansi模式编译的,那会有很多地方的字符串和代码都需要更改。
除非以前字符串都用宏_T()之类的括起来了,而且函数名都用的不带A、W后缀的,字符串长度和缓冲区长度还都用的_countof()之类的宏。因为我猜一般没这么好的编码习惯,哈哈
VC6.0设定UNICODE编译环境
https://blog.csdn.net/zyw_anquan/article/details/8363484
还有个问题是,GB18030最近两年有个新的修改,这些在xp那些老系统里应该是不支持的。不涉及到老系统,或者不涉及到新规范里的字符,那就没啥问题。
--
修改:z16166 FROM 221.218.160.*
FROM 221.218.160.*