请参阅代码:无法打开的句柄
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