32位.DLL在安装时注册(Win7 64位),但不是regsvr32


3

我有一个32位应用程序,它使用VC ++ 6开发的32位.DLL(部署为Win32UMinDependency),我无法在Windows 7/8 64位计算机上注册。随着应用程序是vbAccelerator ActiveX控件,许多其他第三方.DLL,以及内部构建的.DLL。我可以在软件包中注册每个单独的.DLL但只能注册一个.DLL。为什么是这样?

我已经尝试使用regsvr32SysWOW64system32,我试图把.DLL中SysWOW64的文件夹,并试图进行注册,然后用相同system32的文件夹。我试图取消注册。我尝试过旧版本,新版本,当前版本。我尝试在不同的兼容模式下运行应用程序。你说出来,我试过了。它根本不起作用。

这种行为很奇怪,因为.DLL以及所有其他行为都安装在具有InstallShield构建的.MSI安装程序包的计算机上,并且应用程序在干净安装时运行良好。但是我们遇到了一个错误 - 经过N次重新安装 - 我必须在机器上安装VB6并逐步执行代码以查看.DLL存在问题。它恰好是.DLL我无法注册,然后我注意到ActiveX控件没有显示他们的数据(网格有数据,但数据没有显示)。

创建一个新的用户帐户 - >给它管理员权限 - >登录它,然后取消安装VB6并尝试安装VS6软件包(VB6,VC ++ 6,MDAC,VS6 Service Pack 6),它失败了。所以我试图再次安装原始VB6包,但失败了(不记得错误)。在感到沮丧之后,我加载了我的应用程序,一切正常,但是我仍然无法注册.DLL。我切换回原始用户帐户,它也在那里工作。

那么,怎么可能,.DLL可以有一个键regedit,一个应用程序可以正常工作,无法在代码中加载.DLL,Windows无法安装VS6,再回到应用程序工作?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.