請參閱代碼:無法打開的句柄
int main(int argc,LPTSTR argv[])
{
HANDLE hinFile;
BOOL check;
PLARGE_INTEGER file_size;
hinFile=CreateFile(argv[1],GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hinFile==INVALID_HANDLE_VALUE)
{printf("INVALID_HANDLE_VALUE\nFile Does Not Exist");exit(0);}
else{
check=GetFileSizeEx(hinFile,file_size);
printf("The Size of File is %d",file_size);
}
return 0;
}
現在,在上面的程序我是否嘗試在可執行文件的目錄中打開文件或我指定的路徑作爲命令行參數,只輸出我得到的是:
INVALID_HANDLE_VALUE \ n文件不存在
請解釋爲什麼發生這種情況?
您是否嘗試調用GetLastError()來獲取更具體的錯誤描述? – OregonGhost 2010-08-04 10:32:51
你是否將它編譯爲unicode? – sje397 2010-08-04 10:35:15
從我的答案修改後的版本效果很好。給我們命令行。對於命令行參數使用引號(如「帶路徑和空格的文件名」)。 – INS 2010-08-04 11:25:44