[求助]写一个读写硬盘的东西,设置文件指针的时候出错[已解决]
发表于:
2008-6-11 07:09
5774
[求助]写一个读写硬盘的东西,设置文件指针的时候出错[已解决]
这段是错误演示代码,代码如下:
[color=#FF0000]#include <afxwin.h>
[color=#008000]// 输出错误信息
[color=#0000FF]void printerr()
{
DWORD dwError;
[color=#0000FF]if (dwError = GetLastError() != NO_ERROR )
{
[color=#0000FF]char ErrorText[512]=[color=#FF00FF]"";
[color=#0000FF]char ErrorMsg[400]=[color=#FF00FF]"";
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| [color=#008000]//自动分配消息缓冲区
FORMAT_MESSAGE_FROM_SYSTEM, [color=#008000]//从系统获取信息
NULL,GetLastError(), [color=#008000]//获取错误信息标识
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),[color=#008000]//使用系统缺省语言
(LPTSTR)&lpMsgBuf, [color=#008000]//消息缓冲区
0,
NULL);
sprintf(ErrorMsg, [color=#FF00FF]"%s 由于以下错误而失败: %s",ErrorText,lpMsgBuf);
MessageBox(NULL,ErrorMsg, [color=#FF00FF]"错误", MB_ICONSTOP);[color=#008000]//弹出错误提示框
}
}
[color=#0000FF]void main()
{
[color=#0000FF]char szFile[] = [color=#FF00FF]"\\\\?\\C:";
HANDLE hFile = CreateFile(szFile,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
DWORD dCheck;
dCheck = SetFilePointer(hFile,
0x10,
NULL,
FILE_CURRENT
); [color=#008000]// 这里出错
[color=#0000FF]if (dCheck == -1)
{
[color=#008000]// 输出错误信息
printerr();
}
}
在SetFilePointer处出错了,错误信息是“参数错误”。但是如果是对于一个文件这段代码却不会出错。难道CreateFile逻辑磁盘的时候不能设定文件指针吗? 不明白,求解
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课