连接 ActiveX控件工程时断言错误处理 oletypld.cpp line:32

新建的 ActiveX 控件工程,就算什么代码都不写进去,在连接时也会出现这样的问题;忽略断言错误继续下去,在Debug下生成了 .ocx文件,直接在运行对话框里输入: regsvr32 D:\ActiveX\debug\XXX.ocx (路径对的)也会出现同样的断言错误,不能注册;根据断言提示的错误去查找相关的错误 发现是红色部分的断言:
void CCmdTarget::EnableTypeLib()  
{  
AfxLockGlobals(CRIT_TYPELIBCACHE);

CTypeLibCache* pTypeLibCache = GetTypeLibCache();
ASSERT(pTypeLibCache != NULL); // must override GetTypeLibCache

if (pTypeLibCache != NULL)
pTypeLibCache->Lock(); // will be unlocked in OnFinalRelease

AfxUnlockGlobals(CRIT_TYPELIBCACHE);
}

到网上查找各种关于GetTypeLibCache();的信息也找不到,查看MFC的源码也找不到什么说明,没有办法,果断放弃看源码!!

结果今天不小心在MSDN上看到一个和我同样的例子:

When I try register control

regsvr32 CliControl.ocx

on some computersIhave"Debug Assertion Failed" in oletyplb.dll line 32

NOTE: On some computers... (WIN 2000 and XP)

According to oletyplb.cpp lines 31-32 are

CTypeLibCache* pTypeLibCache = GetTypeLibCache();
ASSERT(pTypeLibCache != NULL); // must override GetTypeLibCache


But I have no problems on other computers.

I check DLLs (that is listed in Dependency Walker) - all them are in System32 directory.

Has anybody some ideas?
--------------------------------------------------------------------------------
Jumpow04-07-2005, 12:38 PMPorlem is solved :-)

It is version of MFCO42D.DLL

原来:其实是 MFCO42D.DLL这个文件的版本问题,出问题的机器里的system32中的此文件为98年的版本,覆盖为04年的版本就没有问题了。





  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值