CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

dll调用出错,附源码

楼主lemonnony(有点意思)2002-04-04 16:17:01 在 VC/MFC / 基础类 提问

bool   fnLoadFileHeader(const   char   *pchFileName,   TFILEHEADER   *ptfhHeader)  
  {  
          HANDLE       hLoadFile   =   NULL;  
          DWORD         dwRead   =   0;  
   
          hLoadFile   =   CreateFile(   pchFileName,   GENERIC_READ,   FILE_SHARE_READ,  
  NULL,   OPEN_EXISTING,   FILE_ATTRIBUTE_NORMAL,  
                                        NULL);    
          if   (hLoadFile   !=   NULL)   //本来是==,我为了测试,用!=  
          {                                             //发现在满足条件的时候,  
  CloseHandle(hLoadFile);     //这句不执行,为什么。  
  return   false;  
          }  
   
        if   (ReadFile(hLoadFile,   ptfhHeader,   sizeof(TFILEHEADER),   &dwRead,NULL))  
        {  
  CloseHandle(hLoadFile);  
  return   true;  
        }  
        else  
        {  
  CloseHandle(hLoadFile);  
  return   false;  
          }  
  }  
   
   
  我打算用另外一个程序静态链接(隐式链接),却读不出来数据。  
  我刚开始学vc,请大侠指点。有说的不明白地,请发问,我在线等。 问题点数:40、回复次数:10Top

1 楼ylb_and_xy(黑狐狸)回复于 2002-04-04 17:02:29 得分 5

if   (hLoadFile   !=   INVALID_HANDLE_VALUE)Top

2 楼qunta(J2Y2)回复于 2002-04-04 17:02:56 得分 5

if   (hLoadFile   ==INVALID_HANDLE_VALUE)  
  {  
  return   false;  
  }Top

3 楼Greenwillow(^_^,~_~)回复于 2002-04-04 17:08:42 得分 0

没明白你所说的,你的程序是想实现什么功能,还有在关闭文件句柄时就读不出数据来了呀Top

4 楼lemonnony(有点意思)回复于 2002-04-04 17:38:49 得分 0

回复人:   qunta(旺财1860)   (     )   信誉:100     2002-04-04   17:02:00     得分:0      
    if   (hLoadFile   ==INVALID_HANDLE_VALUE)  
  {  
          return   false;  
  }  
   
    是不是就不用在closehandle了,closehandle   干了什么事?  
     
  Top

5 楼llb2000(失去小雪,赢了世界又如何)回复于 2002-04-04 17:55:40 得分 5

CloseHandle执行了的,只不过程序单步执行时,不会在这停Top

6 楼lemonnony(有点意思)回复于 2002-04-04 18:18:29 得分 0

CloseHandle执行了的,只不过程序单步执行时,不会在这停  
  ?  
   
    llb2000(五代)   为什么?Top

7 楼huangama(huangama)回复于 2002-04-04 18:42:08 得分 5

CloseHandle可以执行,但没有释放任何指针,because   create   nothing.Top

8 楼qunta(J2Y2)回复于 2002-04-04 18:59:54 得分 10

问题不在于CloseHandle,  
  在于CreateFile失败时返回的不是NULL,  
  而是INVALID_HANDLE_VALUE,  
  如果返回的是INVALID_HANDLE_VALUE,  
  对它CloseHandle(INVALID_HANDLE_VALUE)   会执行过去但没有任何意义Top

9 楼wiler(@_@)回复于 2002-04-04 19:00:36 得分 3

if   (hLoadFile   !=   INVALID_HANDLE_VALUE)Top

10 楼yongdu()回复于 2002-04-04 19:44:25 得分 5

一般来说,一个函数成功执行返回TRUE,失败返回FALSE,但CreateFile例外,它失败回INVALID_HANDLE_VALUE,被定义为-1。要注意Top

11 楼zhubo(rickyzhu.com)回复于 2002-04-04 19:51:36 得分 2

你可以用GetLastError看看出了什么错误,跟一下,或者设置一个变量@err,hr  
   
  就能看出错误代码,然后查看MSDN帮助!  
  Top

相关问题

  • DLL调用出错
  • 调用.dll出错
  • 弱问:DLL调用出错
  • Dll调用出错?who can help me?
  • vc调用vc的DLL出错??
  • Dll的调用为什么会出错?
  • 调用DLL出错,请高手指教!
  • 动态调用DLL出错为何?
  • 调用DLL 出错,以知代码 ?
  • 用VC做的dll调用出错

关键词

  • 执行
  • null
  • hloadfile
  • closehandle
  • invalid
  • 程序
  • createfile
  • handle
  • 返回
  • 失败

得分解答快速导航

  • 帖主:lemonnony
  • ylb_and_xy
  • qunta
  • llb2000
  • huangama
  • qunta
  • wiler
  • yongdu
  • zhubo

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo