锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C++平台框架库和混编开源 / C++开源项目字符串编码问题、MFC项目字符串编码问题

服务方向

人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

联系方式

固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

C++开源项目字符串编码问题、MFC项目字符串编码问题


背景

近期使用一个C++MFC开源项目,遇到了C++开源项目字符串编码问题和MFC项目字符串编码问题,作者在初期版本里没有提供兼容Unicode方式来兼容处理字符串,让用户觉得不满意,后来作者重新编写了代码才进行了兼容。对于高级语言来说,分ANSI和Unicode编码是必须处理的事,但是现在快速语言开发流行,无形中带来了压力,程序员都想省事,字符串编码需要特别照顾,自然觉得累。

在VS2019的MFC项目里,还是对字符集进行了区分,分为多字节和Unicode。所以,大家为了兼容,使用_T处理常量,使用TCHAR来指定字符串类型。至于wstring,有必要时用就用。

vs2019 MFC 字符集

正文

 

提问:
应该如何去做转换?
我使用 LPCTSTR 和 TCHAR 传递所有代码,但必须修改 dll...
打开文件有问题...
DFXReadFile函数里fopen调用无法将类型LPCTSTR 转换为 wchar_t
当我使用头文件 atlbase.h 时,编译器给我一个错误

解答:
尝试CadIO.dll的Unicode版本
实际上,如果您尝试制作 Unicode 发行版,它将失败,因为代码不处理TCHAR 字符,我认为必须忘记项目的dll 并生成一个包含所有内容的新项目源代码作为静态库,然后将所有字符转换为 TCHAR 并进行适当的转换。主要问题可能是在打开文件,读取和写入数据,所以需要一些工作来做到这一点
把这段代码作为一个dll,是一个可怕的错误,绘制文件需要速度,尤其是大文件,作者应该将此示例作为静态库发布,它也很容易修复错误和问题
我制作了“CadIO.dll”的 Unicode 版本和“Test.exe”的 Unicode 版本,能够起作用,使用的vs2008

友情链接
版权所有 Copyright(c)2004-2015 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:A、郑州市芯互联大厦北楼1803A(文化路优胜北路西北角),B、郑州大学北校区院内)