【发布时间】:2014-09-19 11:00:02
【问题描述】:
我刚刚添加了一个我制作的 ActiveX 控制器(它使用我制作的 dll),将一个项目从一个目录移动到另一个目录。我从来没有告诉 VC6 在哪里可以找到 dll,我所做的只是添加 ActiveX 控制器,当我部署项目时它工作正常但我无法远程调试,当我这样做时它说找不到文件并说明旧位置dll(在项目中,我将 dll 放在项目目录的根目录中并且它可以工作,所以我没有质疑它)我已经对项目中的所有字段进行了文本搜索检查了 dll 和 activeX 代码注册表和 VC6 项目的设置,我在任何地方都找不到对这个旧文件路径的引用,有什么想法吗?
【问题讨论】:
-
Visual Studio 6,你是认真的吗?
-
我不能评判我的公司 :)
-
该位置存储在注册表中,由 Regsvr32.exe 放在那里。构建控件时自动完成。这也需要在远程机器上发生,它不是自动的。它怎么能记住旧路径很难猜测,DLL中的注册码应该是borken。或者您只是通过自己入侵注册表而错误地注册了它。
-
在两台计算机的注册表中都没有引用旧路径... regsvr32 作为安装程序的一部分自动完成
-
activex 构建的最后一步是自动向 Regsvr32.exe 注册二进制文件。如果您想将二进制文件移动到另一个位置,只需将 dll 文件复制到新位置并手动使用 Regsvr32.exe 再次注册,然后 dll 文件的新位置将更新到注册表中。例如:
Regsvr32 c:\NewDllDirectory\MyDll.dll
标签: c++ dll activex visual-c++-6