请教一个ReadFile的问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 21:14:41
我写了个函数,用来读取一个文件中的一段数据,函数如下:
BOOL TESTREAD()
{
HANDLE hFile;
LPSTR lpTest;
DWORD dwRead;
hFile = CreateFile("test.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
ReadFile(hFile, lpTest, dwLength, &dwRead, NULL);
CloseHandle(hFile);
return TRUE;
}

dwLength这个是全局变量。执行函数时报错:
Run-Time Check Failure #3 - The variable 'lpTest' is being used without being defined.

字面意思好象说是lpTest没定义。我明明在上面定义了这个lpTest,为什么会这样?

我看了一些例子,他们在写ReadFile的lpBuffer都是用char aaa[数字]这样的形式,长度定死了。我改成一个固定长度运行没错。难道这个lpBuffer一定要指定长度?不能动态的?

希望高手帮助!

//这一句,lpTest是个野指针,没有申请内存,执行会异常
//dwLength 长度要指定
INT dwLength = 255 ;
LPSTR lpTest = new CHAR[dwLength];

//这句改一下
ReadFile(hFile, (LPVOID)lpTest, dwLength, &dwRead, NULL);