字符串转换 char *->CComBSTR-> char *
因为发现程序出现问题,所以做了一个测试:
读取一个日文(还测试过希腊文)的文本文件,将内容转为BSTR,然后再转回,保存后的文件与原文件部分字节不同,出现乱码.
很简单的程序:
FILE * fp=fopen("f:\\text\\test.txt","rb");
if(fp)
{
fseek(fp, 0, SEEK_END);
int len = (int)ftell(fp);
fseek(fp, 0, SEEK_SET);
char * buf=new char[len];
fread(buf,len,1,fp);
CComBSTR strNew;
strNew=CComBSTR(buf);
USES_CONVERSION;
LPCSTR str = OLE2A(strNew);
FILE * fp1=fopen("f:\\text\\test1.txt","wb");
fwrite(str,1,_tcslen(str),fp1);
fclose(fp1);
delete [] buf;
fclose(fp);
}
操作系统是英文.