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

想BHO只加载ie,不加载我的电脑,但出错atlbase.h中5668行,ATLASSERT(pM->m_hInst != NULL);

楼主hybhll(大彬)2005-09-02 18:05:02 在 VC/MFC / ATL/ActiveX/COM 提问

BHO的实现。VC中ATL工程,支持MFC的,想只加载ie,不加载我的电脑。  
  如果不支持MFC,有dllMain可以控制,但是支持MFC的没有dllmain,  
  在initInstance中加入如下代码:  
   
  BOOL   CIEProtectorApp::InitInstance()  
  {  
  TCHAR   Loader[MAX_PATH];  
  GetModuleFileName(NULL,Loader,MAX_PATH);  
  for(int   i   =   lstrlen(Loader);i>0;i--)  
  {  
  if(Loader[i]==_T('\\'))  
  {  
  lstrcpy(Loader,Loader+i+1);  
  break;  
  }  
  }  
  if(lstrcmpi(_strlwr(Loader),_T("iexplore.exe"))!=0&&lstrcmpi(_strlwr(Loader),_T("regsvr32.exe"))!=0)  
  {  
  return   FALSE;  
  }  
  _Module.Init(ObjectMap,   m_hInstance,   &LIBID_IEPROTECTORLib);  
      return   CWinApp::InitInstance();  
   
  }  
  打开ie正常,但是打开我的电脑时atlbase.h中5668行,ATLASSERT(pM->m_hInst   !=   NULL);  
  出错,但是选择ignore我的电脑能正常打开?  
  不知道什么原因,注释掉atlbase.h中的ATLASSERT(pM->m_hInst   !=   NULL);没发现不正常现象,  
  请问怎么才能解决?  
  问题点数:20、回复次数:5Top

1 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-09-02 23:41:31 得分 0

可能是因为你没有调CWinApp::InitInstance();  
  Top

2 楼firmbird(firmbird)回复于 2005-09-03 17:52:50 得分 0

在DllMain()中添加  
   
  if   (dwReason   ==   DLL_PROCESS_ATTACH)  
  {  
  TCHAR   pszLoader[MAX_PATH];  
  GetModuleFileName(NULL,   pszLoader,   MAX_PATH);  
  _tcslwr(pszLoader);  
  if   (_tcsstr(pszLoader,   _T("explorer.exe")))    
        return   FALSE;  
  }  
   
  Top

3 楼lion_wing(凤之焚-业与情的纠缠,死而复生的蜕变!)回复于 2005-09-04 12:32:49 得分 0

我也遇到过这问题,去掉一个编绎选项就OK了!Top

4 楼yongdu()回复于 2005-09-04 15:07:16 得分 0

跟一下这句_Module.Init(ObjectMap,   m_hInstance,   &LIBID_IEPROTECTORLib);  
    m_hInstance   为   0   ?  
  可能m_hInstance还没赋值Top

5 楼hybhll(大彬)回复于 2005-09-05 09:14:58 得分 0

to:   lion_wing(血舞尖刀)   我也遇到过这问题,去掉一个编绎选项就OK了!  
  请问是哪一个编译选项呢?  
   
  to:   firmbird(firmbird):     支持mFC的没有dllMain()!!!!  
   
  to:yongdu()     怎么赋值呢?Top

相关问题

  • .h
  • .h 与.lib
  • Give me an H.............................
  • #define _BKDIALOGST_H_ ??????
  • HMENU LoadMenu(hInst,lpMenuName)
  • 巨简单: include *.h
  • 头文件(.h)的问题
  • 关于“.h"的问题
  • Give me an H...................(在线等待)
  • .h 文件问题,请教

关键词

  • 电脑
  • 选项
  • ie
  • mfc
  • pm
  • null
  • 加载
  • pszloader
  • atlbase
  • atlassert

得分解答快速导航

  • 帖主:hybhll

相关链接

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

广告也精彩

反馈

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