【问题标题】:Trouble using files Globally全局使用文件时遇到问题
【发布时间】:2010-05-12 22:49:38
【问题描述】:

最近我发现 vista 限制了可以安装到 system32 目录中的内容,即使我是这台计算机的管理员,我也遇到了麻烦。它不允许我注册 dll 文件,因此我可以在全局范围内使用 wget 之类的程序,就像程序“nslookup”等的使用方式一样。一直给我这个错误。

Regsvr32:模块“C:\Windows\System32\libeay32.dll”加载失败。
确保二进制文件存储在指定路径或对其进行调试以检查二进制文件或相关 .DLL 文件是否存在问题。

找不到指定的模块。

将所需的DLL文件移动到system32提示我确认需要管理员权限才能移动这些文件,所以我授予权限,将文件复制到system32,然后运行wget确认。这是它告诉我它找不到运行所需的 DLL 的地方,当使用 regsvr32 时它说它找不到入口点,因此它不会加载 DLL,询问我它是有效的 DLL 还是 OCX 文件。

如果我将 wget 附带的 DLL 留在与 wget 在 system32 外部站点相同的文件夹中,它们会使用 exe 将它们添加到 system32 中,如果说它无法读取这些 dll 文件,它将无法正常工作。

有没有办法解决这个问题,或者我是否需要升级到 Windows 7 才能摆脱这些问题/限制?

【问题讨论】:

    标签: windows-vista directory globalization


    【解决方案1】:
    • 在 wget.exe 上尝试Dependency Walker,看看它会为您提供有关问题的更多信息
    • 将文件复制到system32时可能是权限问题吗?确保您的用户对其拥有读取/执行权限
    • 将它(和 wget.exe)放在其他文件夹中,该文件夹也位于 %path% 中。 c:\windows(丑陋)或添加到系统变量中的自定义文件夹(如 c:\tools)。
    • 使用不依赖于该 dll 的 wget 版本

    注意:system32中的dll不需要regsvr32,只有在dll导出DllRegisterServer函数时才有效

    【讨论】:

    • 我在执行此操作之前使用了 Dependance walker,只是没有添加该信息。我之前还以 CMD.exe 的管理员身份添加了权限,因此我可以使用 wget 并注册 DLL 文件,但仍然给我错误。我刚刚尝试了将它们放在丑陋的 C:\windows 目录中的答案,并且由于某种原因它似乎确实有效。我想知道为什么它在那里工作而不是在 system32 中工作。谢谢你的信息,安德斯!为我节省了很多时间。
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    相关资源
    最近更新 更多