问题
I have a DLL which cause to an error when I run the application.
The error says that the service is not registered. So I run command regsvr32
with the name of the DLL.
But it gives me an error, now the error is:
The module 'mydll.dll' was loaded but the entry-point 'DllRegisterServer' was not found.
Make sure that 'mydll.dll' is a valid DLL or OCX file and then try again
I worked on Windows 7 64-bit. On Windows XP it works fine!. Does someone know what it can be? Thanks!
回答1:
The error indicates that the DLL is either not a COM DLL or it's corrupt. If it's not a COM DLL and not being used as a COM DLL by an application then there is no need to register it.
From what you say in your question (the service is not registered)
it seems that we are talking about a service not correctly installed. I will try to reinstall the application.
回答2:
I had this problem and
dumpbin /exports mydll.dll
and
depends mydll.dll
showed 'DllRegisterServer'.
The problem was that there was another DLL in the system that had the same name. After renaming mydll the registration succeeded.
回答3:
What solved it for me was using :
regasm.exe 'xx.dll' /tlb /codebase /register
It is however, important to understand the difference between regasm.exe and regsvr.exe:
What is difference between RegAsm.exe and regsvr32? How to generate a tlb file using regsvr32?
回答4:
I found the answer: I need to add a new application to the service components in my computer and then add the right DLL's.
Thanks! If anyone has the same problem, I'll be happy to help.
来源:https://stackoverflow.com/questions/10227448/the-module-dll-was-loaded-but-the-entry-point-was-not-found