2017-03-22 1 views
0

Ich habe eine Matlab DLL, die ich unerbittlich versuche, von einem Delphi-Code aufzurufen. Dazu benutze ich Loadlibrary() und es wird Fehler 126 'Modul nicht gefunden' zurückgegeben.Fehlende Abhängigkeiten von kernel32.dll

Dank Dependency Walker, habe ich herausgefunden, dass das Problem von kernel32.dll kommen könnte. Viele seiner Abhängigkeiten von Windows-API (wie ich verstanden) fehlen oder nicht gefunden, wie man auf dem Bild unten sehen können:

dependencies

Wie kann ich diese fehlenden DLLs bekommen? Sollte ich etwas Windows-bezogenes neu installieren?

+2

Nein, das fehlt nicht Abhängigkeiten - 'API-MS-WIN- *' natürlich vorhanden. Dies ist einfach Dependency Walker falsch behandeln es – RbMm

Antwort

1

Das sind falsch positive. Diese Ausgabe ist vollkommen normal. Sie werden diese Art von Sache manchmal sehen, besonders wenn Sie 32 Bit DLL und 64 Bit Dependency Walker mischen, oder umgekehrt.

Wenn Sie sicher herausfinden wollen, was falsch ist, verwenden Sie die Profilierungsoption in Dependency Walker. Es kann den DLL-Ladeprozess überwachen und Ihnen einen Bericht darüber geben, wo es fehlschlägt.

Basierend auf Ihrer Beschreibung besteht die wahrscheinliche Erklärung darin, dass Sie keine Abhängigkeiten von der Matlab-Laufzeit oder der MSVC-Laufzeit auflösen können.

+0

MSVC Laufzeit dll am wahrscheinlichsten, würde ich vorschlagen, Process Monitor mit laden Bildfilter, um zu sehen, was dll es sucht. https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx – Remko

+0

Sie könnten das tun. Dependency Walker gibt Ihnen die Informationen auf genauere Weise. –

+0

Ich war mir nicht bewusst, dass Dependancy Walker über statisch verknüpfte DLLs hinaus gehen könnte, aber denke, ich habe etwas Neues gelernt. Prost ... – Remko

Verwandte Themen