修改原来的Source Insight完美转换UTF-8 到 GB2312

本文详细介绍了使用源作者的sourceinsight转换CodeConvert.exe时遇到的问题及解决方案,包括解决运行时报错‘找不到xx.dll’的问题,通过类型转换避免编译错误,并优化文件选择逻辑以正常转换单个文件成gbk。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用原作者的source insight 转换CodeConvert.exe:http://blog.youkuaiyun.com/flylonginsky/article/details/4670188

1.点击运行时报错了:找不懂xx.dll,

用vs打开编译时是不能编译过的,报错:“MultiByteToWideChar”: 不能将参数 5 从“unsigned short [2048]”转换为“LPWSTR”等类型转换出错,在原来的基础上添加强制转换就ok了;

2.选择使用转换单个文件:%d时转换不了,看了下代码是函数:bool find_cpp_files(LPCTSTR DirName)中sprintf(tempFileFind,"%s\\*.*",DirName);当时文件名字时会有问题

因此可以在这之前做点判断当前输入的是文件名字还是文件夹,简单点是判断文件名字最后几个字节是否有'.'的文件后缀符号,代码如下:

int lenth=strlen(DirName);
int Isfile=false;
for (int i=1;i<10;i++)
{
if (DirName[lenth-i]=='.')
{

Isfile=true;
break;
}

}
if (Isfile==true)
{
sprintf(tempFileFind,"%s",DirName);//文件
}
else
{
sprintf(tempFileFind,"%s\\*.*",DirName);//匹配格式为*.*,即该目录下的所有文件
}


经过测试,可以正常的转换单个文件成gbk





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值