c++ win32下ReadFile 应用实例
string ReadFile(char *File){
HANDLE pfile;
//pfile = CreateFileA(str, GENERIC_READ, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, NULL); //用这个函数比OpenFile好
pfile = CreateFileA(File, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); //用这个函数比OpenFile好
if (pfile == INVALID_HANDLE_VALUE)
{
MessageBoxA(NULL, "打开文件失败", "Error", MB_OK);
CloseHandle(pfile); //一定注意在函数退出之前对句柄进行释放。
return "";
}
DWORD filesize = GetFileSize(pfile, NULL);
char *buffer = new char; //最后一位为'/0',C-Style字符串的结束符。
DWORD readsize;
BOOL success = ReadFile(pfile, buffer, filesize, &readsize, NULL);
if (success)
{
//读入数据成功
}
else
{
//读入数据失败
}
buffer = 0;//最后一位置0防止乱码
// MessageBoxA(NULL, buffer, "BufferSize", MB_OK);
//善后工作
CloseHandle(pfile);//关闭句柄。
string Subl = buffer;
delete[]buffer; //注意是delete[]而不是delete
return Subl;
}
页:
[1]