可以在机器上注册多个同名的.DLL吗?

时间:2010-09-14 04:27:10

标签: dll

可以在机器上注册多个同名的.DLL吗?

EG。如果我在c:\和c:\ MyDLLs中都有MyDLL.dll,是否可以注册MyDLL.dll文件?如果我这样做,如果应用程序试图访问MyDLL.dll,将使用哪个MyDLL.dll?

2 个答案:

答案 0 :(得分:0)

(资料来源:http://www.codenewsgroups.net/vb/t2754-dll-hell-query.aspx

如果它们具有相同的文件名,则它们不能共存 目录。必须重命名或移动一个。如果他们是ActiveX DLL 那么文件名不如使用的相关ProgID / ClsID重要 注册 - 除了重命名它可能会扰乱后续 从该供应商处卸载或重新安装该软件。

假设他们有不同的ProgID和ClsID,则应该没有 注册它们的问题。 但是如果你可以试着避免这个

P.S。请查看上面的链接以获得一些好的见解。

答案 1 :(得分:0)

最有可能是关于DLL实现COM组件的问题。它实际上使用了一个GUID(全局唯一标识符),它在hkey_classes_root / clsid下的注册表中查找,子键中有一个指向物理位置的方案。

要开始理解这一点,打开注册表,然后执行一个控制-f找到所讨论的两个DLL的完整路径 - 你会看到我正在谈论的内容。

相关问题