Code:
int wmain()
{
HANDLE hd = CreateFile(L"myfiled.txt",GENERIC_ALL,FILE_SHARE_WRITE|FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
CHAR buff[200];
DWORD written;
int m=ReadFile(hd,buff,200,&written,NULL);
if(!m)
{
cout<<"Read file error";
return 0;
}
for(int i=0;i<=1998;i++)
{
cout<<buff[i];
}
return 0;
}
2nd parameter of Readfile is LPVOID lpBuffer then why are passing char* to it? It is working fine even we have not cast it.
I think the correct method should be:
Code:
int wmain()
{
HANDLE hd = CreateFile(L"myfiled.txt",GENERIC_ALL,FILE_SHARE_WRITE|FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
CHAR buff[200];
DWORD written;
int m=ReadFile(hd,(void*)&buff,200,&written,NULL); // cast to void*
if(!m)
{
cout<<"Read file error\n";
return 0;
}
for(int i=0;i<=198;i++)
{
cout<<buff[i];
}
return 0;
}