该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/******************************************************************************
打开用户文件
******************************************************************************/
int ReadTheFile(char str[]){
HANDLE pfile;
pfile = ::CreateFileA(str,GENERIC_READ,0,NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL); // 用这个函数比OpenFile好 FILE_FLAG_DELETE_ON_CLOSE
if(pfile == INVALID_HANDLE_VALUE)
{
printf("打开文件失败2:%s\n",str);
CloseHandle(pfile); // 一定注意在函数退出之前对句柄进行释放。
return 1;
}
DWORD filesize=GetFileSize(pfile,NULL);
char* buffer=(char*)malloc((filesize+1)*sizeof(char)); 最后一位为 '/0'。
ZeroMemory(buffer,sizeof(buffer));
DWORD readsize;
ReadFile(pfile,buffer,filesize,&readsize,NULL);
buffer[filesize]=0;
//对读取的网页信息(UTF_8编码)进行解码,转换为Unicode再转换为ASCII码
int wLen2 = MultiByteToWideChar(CP_UTF8, 0, buffer, -1, NULL, 0);
wchar_t* wStr2 = (wchar_t*)malloc(sizeof(wchar_t)*wLen2);//
MultiByteToWideChar(CP_UTF8, 0, buffer, -1, wStr2, wLen2);
//unicode to gb2312
int aLen2 = WideCharToMultiByte(CP_ACP, 0, wStr2, -1, NULL, 0, NULL, NULL);
char* converted2 = (char*)malloc(sizeof(char)*aLen2);
WideCharToMultiByte(CP_ACP, 0, wStr2, -1, converted2, aLen2, NULL, NULL);
EditShow(converted2);
free(buffer);
free(wStr2);
free(converted2);
CloseHandle(pfile); // 关闭句柄。
return 0;
}