永发信息网

C语言_WIN32_SDK_OpenFile()&&ReadFile()

答案:2  悬赏:20  手机版
解决时间 2021-12-18 03:55
  • 提问者网友:狙击你的心
  • 2021-12-17 04:57
LPTSTR szBuffer=new TCHAR[szMAX];
LPTSTR szBuf=new TCHAR[szMAX];
DWORD filesize,readsize;
HANDLE hFile;

SendMessage(ebox,WM_GETTEXT,szMAX,(LPARAM)szBuf);
hFile=(HANDLE)OpenFile((LPTSTR)szBuf,&of,OF_READ);
if(hFile=(HANDLE)HFILE_ERROR)
{
MessageBox(0,"open failed","error",MB_ICONWARNING);
return 0;
}
filesize=GetFileSize(hFile,0);
LPTSTR szFileBuf=new TCHAR[filesize];
ReadFile(hFile,&szFileBuf,filesize,&readsize,NULL);
wsprintf(szBuffer,TEXT("%s"),szFileBuf);
MessageBox(0,szBuffer,"file",MB_OK);
return 0;

打开文件那里就提示错误
要怎么改
还有ReadFile(hFile,&szFileBuf,filesize,&readsize,NULL);这4个参实在看不懂,&readsize这个东西根本不知道是干什么用的
MSDN我都快吐了............
最佳答案
  • 五星知识达人网友:叹一曲悠悠
  • 2021-12-17 05:21
第一个是文件句柄
第二个是缓冲区
第三个是需要读/写的字节数
第四个用来接收实际读/写的字节数
第五个是异步读写用的,磁盘文件操作没必要用那个

返回值,失败0,成功1。
全部回答
  • 1楼网友:坑蒙拐骗样样会
  • 2021-12-17 06:32
readfile(hfile,&lpfilebuf,dwfilesize,&dwreadsize,null); 这里为什么要,&lpfilebuf啊,lpfilebuf指向的是缓冲,本身并不是缓冲。 lpfilebuf[dwfilesize / 2] = 0; 可能你差了这句,原本的文件可能不是0结尾的 出错把结果说清楚可能的话把完整代码贴上来啊,这么问谁猜得出来是怎么回事。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯