有的时候在英文版本的操作系统中,dll实现文件里面使用USES_CONVERSION,将ascii的中文字符串转为unicode类型,写入注册表,会引起乱码,原因是:
使用atlconv.h中的A2T函数导致,字符串转换使用了当前线程的默认 ANSI 代码页执行,保存注册表后显示为乱码
解决的办法是:
在dll编译选项中添加上宏_CONVERSION_DONT_USE_THREAD_LOCALE ,即可以正常显示与读取
在英文版本操作系统中,dll实现文件用USES_CONVERSION将ascii中文字符串转unicode写入注册表会乱码,原因是使用atlconv.h的A2T函数,按当前线程默认ANSI代码页转换。解决办法是在dll编译选项添加宏_CONVERSION_DONT_USE_THREAD_LOCALE 。
有的时候在英文版本的操作系统中,dll实现文件里面使用USES_CONVERSION,将ascii的中文字符串转为unicode类型,写入注册表,会引起乱码,原因是:
使用atlconv.h中的A2T函数导致,字符串转换使用了当前线程的默认 ANSI 代码页执行,保存注册表后显示为乱码
解决的办法是:
在dll编译选项中添加上宏_CONVERSION_DONT_USE_THREAD_LOCALE ,即可以正常显示与读取
4545
132

被折叠的 条评论
为什么被折叠?
