web-dev-qa-db-fra.com

Le module ".dll" a été chargé mais le point d'entrée n'a pas été trouvé

J'ai un DLL qui cause une erreur lorsque j'exécute l'application . L'erreur indique que le service n'est pas enregistré. Je lance donc la commande regsvr32 avec le nom de la DLL. Mais cela me donne une erreur, maintenant l'erreur est la suivante:

Le module 'mydll.dll' a été chargé mais le point d'entrée 'DllRegisterServer' n'a pas été trouvé.

Assurez-vous que 'mydll.dll' est un fichier DLL ou OCX valide, puis réessayez.

J'ai travaillé sur Windows 7 64 bits. Sous Windows XP, cela fonctionne bien! ..____. Est-ce que quelqu'un sait ce que cela peut être?

11
st mnmn

J'ai eu ce problème et 

dumpbin /exports mydll.dll

et 

depends mydll.dll

a montré 'DllRegisterServer'.

Le problème était qu'il y avait une autre DLL dans le système qui portait le même nom . Après avoir renommé mydll, l'enregistrement a réussi.

1
Roland Puntaier

L'erreur indique que la DLL n'est pas un COM DLL ou qu'elle est corrompue. S'il ne s'agit pas d'une COM DLL et que cette application ne l'utilise pas en tant que COM DLL, il n'est pas nécessaire de l'enregistrer.
D'après ce que vous dites dans votre question (the service is not registered), il semble que nous parlions d'un service qui n'est pas correctement installé. Je vais essayer de réinstaller l'application.

1
Steve

Ce qui l'a résolu pour moi utilisait:

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

Cependant, il est important de comprendre la différence entre regasm.exe et regsvr.exe:

Quelle est la différence entre RegAsm.exe et regsvr32? Comment générer un fichier tlb en utilisant regsvr32?

1
user2111199