2017-02-10 3 views
0

J'essaie de charger un fichier .dll à l'aide de la bibliothèque python cffi, mais quand j'essaie de le charger, je reçois erreur suivant: -Obtenir cette erreur *** OSError: impossible de charger la bibliothèque C: WINDOWS libzsfc.dll: erreur 0xc1

*** OSError: cannot load library C:\WINDOWS\libzsfc.dll: error 0xc1 

J'utilise ce

from cffi import FFI 
ffi = FFI() 
lib = ffi.dlopen("libzsfc.dll") 

mais cela me donne l'erreur, j'ai essayé beaucoup à résoudre ce problème, mais il reste même, s'il vous plaît laissez-moi savoir si quelqu'un face même question .

+0

0xC1: le module spécifié est introuvable. Peut-être que la DLL dépend d'autres bibliothèques qui n'ont pas pu être trouvées ... –

+0

Je mets tout le fichier dépendant dans le même répertoire, je suis toujours confronté à cette erreur, dois-je définir certains types de chemin dans l'environnement? – Mahendra

Répondre

0

Je pense que vous devez d'abord enregistrer la DLL dans Windows, puis le chargement fonctionnera bien.

Pour enregistrer la même commande l'utilisation regsvr32 <complete dll path>

Utilisez Regsvr32.exe% SystemRoot% dossier \ Syswow64. Par exemple, tapez les commandes suivantes pour enregistrer la DLL: cd \ windows \ syswow64 regsvr32 c: \ filename.dll

+0

J'ai suivi cette étape, mais ça ne marche pas ... Une autre idée? – Mahendra

+0

Avez-vous essayé le 'ctypes'? Pour plus d'informations, suivez le lien http://stackoverflow.com/a/252473 –

+0

Les deux ctypes et la fonction '' dlopen'' de cffi appellent simplement '' LoadLibrary() '' depuis l'API Windows. Si vous obtenez une erreur dans un, je parie que vous obtenez la même erreur dans l'autre. Je ne connais pas assez Windows pour vous aider à le réparer. Cela peut être quelque chose comme essayer de charger une DLL 32 bits dans un Python 64 bits ou vice-versa, ou quelque chose de complètement différent. –