【问题标题】:The module ".dll" was loaded but the entry-point was not found模块“.dll”已加载,但未找到入口点
【发布时间】:2012-04-30 22:19:53
【问题描述】:

我有一个 DLL,在我运行应用程序时会导致错误。 该错误表示该服务未注册。因此,我使用 DLL 的名称运行命令 regsvr32。 但它给了我一个错误,现在错误是:

模块“mydll.dll”已加载,但未找到入口点“DllRegisterServer”。

确保“mydll.dll”是有效的 DLL 或 OCX 文件,然后重试

我在 64 位的 Windows 7 上工作。在 Windows XP 上它工作正常! 有人知道它可能是什么吗? 谢谢!

【问题讨论】:

    标签: asp.net dll windows-7 regsvr32 component-services


    【解决方案1】:

    我遇到了这个问题

    dumpbin /exports mydll.dll
    

    depends mydll.dll
    

    显示“DllRegisterServer”。

    问题是系统中有另一个同名的 DLL。 重命名mydll后注册成功。

    【讨论】:

      【解决方案2】:

      该错误表明 DLL 不是 COM DLL 或已损坏。如果它不是 COM DLL 并且未被应用程序用作 COM DLL,则无需注册它。
      根据您在问题(the service is not registered) 中所说的话,我们似乎在谈论未正确安装的服务。我会尝试重新安装应用程序。

      【讨论】:

        【解决方案3】:

        为我解决的问题是使用:

        regasm.exe 'xx.dll' /tlb /codebase /register

        但是,了解 regasm.exe 和 regsvr.exe 之间的区别很重要:

        What is difference between RegAsm.exe and regsvr32? How to generate a tlb file using regsvr32?

        【讨论】:

        • OP 说regsvr32 在 WinXP 上工作,但在 Win7 64 上不行。所以这不是原因。
        • 如果你的解决方案解决了dll的注册,为什么还需要了解regasm和regsvr的区别?
        【解决方案4】:

        确保命令提示符窗口具有管理员权限。我使用的是 Windows Server 2012,在命令提示符下使用 regsvr32 时出现错误。我通过在所有程序/Windows 系统/命令提示符中右键单击它并选择“以管理员身份运行”打开命令提示符,在此窗口中运行 regsvr32 成功加载了 dll 文件。

        【讨论】:

          【解决方案5】:

          我找到了答案: 我需要将一个新应用程序添加到我计算机中的服务组件中,然后添加正确的 DLL。

          谢谢! 如果有人遇到同样的问题,我很乐意提供帮助。

          【讨论】:

          • 您好,我也遇到了同样的问题,请给我一条前进的道路。
          • 你能解释一下吗?
          • 关于“更多解释”的任何更新? “向服务组件添加新应用程序”是什么意思?
          • 请详细说明您是如何解决问题的。
          • 这不是答案。这是“嘿,我找到了答案,如果有人需要,我愿意提供答案!”如果您在答案中包含答案,那就太好了。
          猜你喜欢
          • 2013-11-17
          • 1970-01-01
          • 2012-10-18
          • 2020-05-01
          • 2015-10-14
          • 2013-08-09
          • 1970-01-01
          • 1970-01-01
          • 2015-09-23
          相关资源
          最近更新 更多