2nd parameter of Readfile is LPVOID lpBuffer then why are passing char* to it? It is working fine even we have not cast it.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; }
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; }



LinkBack URL
About LinkBacks


