J'ai une simple DLL C qui expose les fonctions d'une bibliothèque statique. La DLL compile sans erreur et je peux lancer DUMPBIN pour voir les exports. Cependant, lorsque je tente de le charger avec DllImport
en C#, il est dit ceci:Pourquoi cl.exe ne produit-il pas un module Windows valide?
System.DllNotFoundException: Unable to load DLL 'ei.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E).
Il est dans le bon répertoire, bien sûr. Donc, j'ai lu que ce pourrait être une bonne idée d'essayer Dependency Walker, au cas où je devrais inclure quelque chose d'autre. Malheureusement, quand je tente d'ouvrir un DLL dans DW, je reçois ceci:
Error: At least one file was not a 32-bit or 64-bit Windows module.
Voici ma commande cl
:
set ERL_INTERFACE_DIR=C:\Progra~1\erl5.7.2\lib\erl_interface-3.6.2\
call vcvars32.bat
cl /I%ERL_INTERFACE_DIR%include /LD ei.c ei.lib Ws2_32.lib /link /LIBPATH:%ERL_INTERFACE_DIR%lib
Ce qui pourrait être la cause?
Mieux afficher la sortie (liste des modules) du dépendant des dépendances. – EFraim
EI.DLL <- C'est le seul. Il y a un cercle rouge à côté. –