CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

装载dll时引起Ntdll.dll异常

楼主JoeXu(我是一个诗人)2002-03-29 22:04:08 在 VC/MFC / 基础类 提问

我执行下面的代码(my.exe),在执行到FreeLibrary(hCheckDll);产生以下的错误:  
  exception   in   my.exe(NTDLL.dll):)xC0000008:Invalid   Handle.  
   
  int   CMainFrame::OnTestdll()    
  {  
  int   ret   =   0;  
  typedef   int   (WINAPI     *CHECK)();  
  CHECK   CheckCurrent;  
  LPCTSTR   lpDllFile   =   _T("Bin\\SerCtrl.dll");//SerCtrl.dll   HMODULE   hCheckDll   =   ::LoadLibrary(lpDllFile);  
  if(hCheckDll)  
  {  
  CheckCurrent   =   (CHECK)::GetProcAddress(hCheckDll,   "GetMatherBoardType");  
  if(CheckCurrent!=NULL)  
  {  
  ret   =   (CheckCurrent)();  
  }  
  ::FreeLibrary(hCheckDll);//上面都执行的很好  
  }  
  return   ret;  
  }  
  这个DLL大致是这样写的:  
  /*  
  BOOL   APIENTRY   DllMain(   HANDLE   hModule,    
                                                DWORD     ul_reason_for_call,    
                                                LPVOID   lpReserved  
    )  
  {  
          switch   (ul_reason_for_call)  
  {  
  case   DLL_PROCESS_ATTACH:  
  case   DLL_THREAD_ATTACH:  
  case   DLL_THREAD_DETACH:  
  case   DLL_PROCESS_DETACH:  
  break;  
          }  
          return   TRUE;  
  }  
  */  
  int   GetMatherBoardType(   )  
  {  
  int   nMbType   =   0;  
  if(bServiceOpen   ==   FALSE   )  
  KOpenService(   );  
   
   
  nMbType   =     OperateHW.GetBoardType();  
  OperateHW.CloseFile();  
  KMemService.StopService();  
  KMemService.DestroyService();  
  return   nMbType;  
  }  
  ........  
  我不知道为什么, 问题点数:20、回复次数:2Top

1 楼JoeXu(我是一个诗人)回复于 2002-03-31 00:25:47 得分 0

这个问题已经解决了,是因为我在DLL中2次closehandle了一个handleTop

2 楼mathma(math-to-math)回复于 2002-07-04 20:08:25 得分 20

明白Top

相关问题

  • 用Assembly装载的DLL,如何卸载?
  • 怎样用vcStudio修改装载资源的dll
  • 如何动态装载DLL的导出类?
  • 有关vc下动态装载dll的问题
  • 有关.NET中DLL装载的问题,请教各位高手!!!
  • 请求AppDomain和Assembly动态装载、卸载DLL的代码
  • 关于dll装载卸载造成内存泄露的问题!
  • PE文件动态装载的dll文件,是如何得到dll文件中的函数入口????????????
  • 我想在一个DLL文件中。调用SELECTNEXT方法。请问要装载哪个系统文件。
  • 应用程序装载dll文件,出错!请大侠们提些建议!(50分)

关键词

  • dll
  • 执行
  • check
  • hcheckdll
  • checkcurrent
  • ret
  • case

得分解答快速导航

  • 帖主:JoeXu
  • mathma

相关链接

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

广告也精彩

反馈

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