有妖气 发表于 2017-2-14 10:55:59

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]
查看完整版本: c++ win32下ReadFile 应用实例