描述:
OPEN_FILENAME file;
file.lStructSize = sizeof (OPENFILENAME) ;
file.hwndOwner = m_hWnd ;
...
file.lpstrDefExt = TEXT ("txt") ;
file.Flags = OFN_EXPLORER |OFN_FILEMUSTEXIST;
TCHAR strfile[MAX_PATH]=_T("");
TCHAR szFilter[] = _T("文本文件(*.txt)\0*.TXT\0");
file.lpstrFilter = szFilter ;
file.lpstrFile = strfile ;
GetOpenFileName(&file);
HWND hwnd;
hwnd =(HWND)CreateFile(file.lpstrFile,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,hwnd);
int filelen = GetFileSize(hwnd,NULL);
TCHAR *filebuffer=(TCHAR*)calloc(filelen,sizeof(TCHAR));
BOOL bResult = ReadFile(hwnd,filebuffer,filelen,NULL,NULL);
前面都没有问题,就是到最后一句读的时候出现了错误,说什么内存不能读??
为什么??
解决方案1:
hwnd =(HWND)CreateFile(file.lpstrFile,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);// 最后一个参数传 NULL
DWORD readLen;
BOOL bResult = ReadFile(hwnd,filebuffer,filelen,&readLen,NULL);//
HANDLE CreateFile();
返回值错了。
再看一下CreateFile函数到底有没有成功