我有一个DLL,当我运行应用程序时会导致错误。
错误表示该服务未注册。所以我使用DLL的名称运行命令regsvr32
。
但它给了我一个错误,现在错误是:
模块'mydll.dll'已加载但未找到入口点'DllRegisterServer'。
确保'mydll.dll'是有效的DLL或OCX文件,然后再试一次
我在Windows 7 64位上工作过。在Windows XP上它工作正常! 有人知道它可能是什么吗? 谢谢!
答案 0 :(得分:1)
错误表明DLL不是COM DLL或它已损坏。如果它不是COM DLL并且没有被应用程序用作COM DLL,那么就不需要注册它
根据您在问题(the service is not registered)
中的说法,我们似乎在谈论未正确安装的服务。我将尝试重新安装该应用程序。
答案 1 :(得分:1)
我遇到了这个问题并且
dumpbin /exports mydll.dll
和
depends mydll.dll
显示'DllRegisterServer'。
问题是系统中有另一个具有相同名称的DLL。 重命名mydll后,注册成功。
答案 2 :(得分:1)
为我解决的是使用:
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?
答案 3 :(得分:-3)
我找到了答案: 我需要在计算机中的服务组件中添加一个新的应用程序,然后添加正确的DLL。
谢谢! 如果有人遇到同样的问题,我会很乐意提供帮助。