关于GetFileSize的问题,高手帮我看看我哪里用错了~!谢谢。

jiayoujiayou 2007-02-25 01:33:56
程序我是这么写的:
fh = CreateFile( vFileName,
GENERIC_READ,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);

if (GetFileSize(fh,NULL) == 0)
{
CloseHandle(fh);
return res_AI_FileEmpty;
}

DWORD dw;
dwSize = GetFileSize(fh, &dw);

其中vFileName是通过C#的string类型传进来的,
等于0x0012eb88 "D:\0003.bmp"

但是结果dwSize=4294967295,
这么大的数,分明不对,
请高手告诉我哪里出了问题,
谢谢。
...全文
274 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
OOPhaisky 2007-02-25
  • 打赏
  • 举报
回复
up
Emma_Hugo 2007-02-25
  • 打赏
  • 举报
回复
vFileName是传进来的参数。
我是用C#引用的VC的DLL,
vFileName是这么在C#里得到的:vFileName = openFileDialog1.FileName;
HewpKanXue 2007-02-25
  • 打赏
  • 举报
回复
文件名错了的可能性非常大,你把怎么得到vFileName这段代码拿出来看看。
gaobaotian 2007-02-25
  • 打赏
  • 举报
回复
错误代码6,表示句柄无效吧。(通过Error lookupc查的)
Emma_Hugo 2007-02-25
  • 打赏
  • 举报
回复
huangyangman(庸人自扰) ( ) 信誉:100,
返回dwError = 6,代表什么错误啊?
huangyangman 2007-02-25
  • 打赏
  • 举报
回复
看看函数为啥失败
huangyangman 2007-02-25
  • 打赏
  • 举报
回复
dwSize = GetFileSize(fh, &dw);

if (dwSize == INVALID_FILE_SIZE)
{
DWORD dwError = GetLastError() ;

// Deal with that failure.
.
.
.
}

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧