Win7下安装VC6

最近在WinXP和Win7的双系统上安装VC6,先在WinXP上顺利安装了,到了Win7装完后启动VC6就会报:
developer studio could not initialize properly because a package failed its initialization的错误, 点确定VC6就失败退出了。我记得在Win7刚出来的时候曾经在上面成功安装并正常使用过VC6,经过一顿谷歌上狂搜找到下面这篇文章,原来是因为我在WinXP上先装的那份VC6中还安装过BoundsChecker,VC6加载devcpp.pkg的时候根据配置文件加载这个插件失败造成出错退出的,所以我继续在Win7上加装了一个BoundsChecker,启动VC6一切就正常了。
 
/
转载搜到的那篇大侠的好文章如下:
 
2月份重装了系统,现在有个bug,需要用VC++ 6来解决,之前的因为重装不能用了,于是重新安装vC6。但是安装好以后,运行,弹出了错误:
developer studio could not initialize properly because a package failed its initialization
然后直接退出。

奇怪。安装盘是好用的,在另一台机器上安装是成功的。
Google一下,也不知道如何解决。于是乎,拿出WinDBG,看看这个到底是什么东西。

ModLoad: 50800000 508bd000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\devedit.pkg
ModLoad: 50300000 5035e000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\devprj.pkg
ModLoad: 51000000 5111d000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devbld.pkg
ModLoad: 61540000 6157e000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\bcpkg6x.pkg
ModLoad: 75ff0000 76055000   C:\WINDOWS\system32\MSVCP60.dll
Failed to open registry key SOFTWARE\Compuware\Weasel
ModLoad: 76fa0000 7701f000   C:\WINDOWS\system32\CLBCATQ.DLL
ModLoad: 77020000 770ba000   C:\WINDOWS\system32\COMRes.dll
ModLoad: 52010000 52038000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devaut1.pkg
ModLoad: 51cd0000 51ce1000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devbied.pkg
ModLoad: 51b60000 51bab000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devclvw.pkg
ModLoad: 51680000 51710000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devcpp.pkg
(e0c.fb8): C++ EH exception - code e06d7363 (first chance)
(e0c.fb8): C++ EH exception - code e06d7363 (first chance)

ModLoad: 50c00000 50c92000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devdbg.pkg
ModLoad: 51d10000 51d87000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devdtg.pkg
ModLoad: 51a30000 51a7d000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devgal.pkg
ModLoad: 51400000 51407000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devhelp.pkg
ModLoad: 51660000 5166c000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devhtmx.pkg
ModLoad: 519e0000 519fb000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devncb.pkg
ModLoad: 51890000 518c4000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devodl.pkg
ModLoad: 50400000 50579000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devres.pkg
ModLoad: 51440000 51453000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\devtool.pkg

注意到中间红字的部分了么。在加载devcpp.pkg的时候出现了C++异常。使用kb查看调用栈,发现出错的地方恰好是initializePackage的函数里面。

由此可以猜测:在初始化这个devcpp.pkg的时候出错了。所以弹出了之前遇到的错误框,退出。

考虑到可能是这个devcpp.pkg损坏了,就从好用的机器copy一份过来,还是不行。但是对比了两台机器的.pkg文件,发现下面一个bcpkg6x.pkg是好用的机器没有的:
ModLoad: 61540000 6157e000   D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE\bcpkg6x.pkg

按照这个线索,把这个文件改名,重新运行,结果错误变了,变成了“Could not find bcpkg6x.pkg”,退出,看来直接改名不行。

又考虑到这个文件可能是通过注册表引用的,就在注册表里面搜索了一下,还是找不到。

最后没有办法了,考虑到这个文件也许是在VC安装目录的某个配置文件中记录的,就把VC安装目录中的所有文件都删除了,再从好用的机器上把所有文件Copy过来。再次运行,成功了。

最后仔细分析了一下。这个文件不是MS VC++中自带的,而是以前安装的BoundsChecker的一个文件。当系统重装的时候,VC没有删除;而当重装以后,再次把VC安装到同一目录下的时候,因为某个配置文件还存在(里面指明要调用bcpkg6x.pkg),而系统是重装过的,那么很多它依赖的东西都找不到了,自然就失败了。这个bcpkg6x.pkg失败以后,引起了其他模块的装载失败。其实上面的WinDBG的事件Failed to open registry key SOFTWARE\Compuware\Weasel 已经提供了很有用的线索:初始化bcpkg6x.pkg的时候,读注册表失败了(键没找到)。后来把所有文件都删掉其实是把配置恢复成初始状态(因为不知道是哪个配置文件记录了要加载bcpkg6x.pkg)

其实要避免这个错误也简单,安装之前把以前的目录清空就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dj0379

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值