Ich bin neu in Windows, habe ich ein DLL-Projekt, das eine DLL generiert und ein Test-Projekt, das eine exe ist, die konsumiert oder ruft die funktioniert in dll. Ich benutze Visual Studio 2010, um dies auszuführen. Derzeit, wenn ich die allgemeinen Eigenschaften der dll unter Konfigurationseigenschaften überprüfen, ist der Zielname DecryptEmailDll und Zielerweiterung ist .dll. Damit läuft die Test-Exe gut und ich bekomme die gewünschte Ausgabe. Aber wenn ich versuche, den Zielnamen der DLL in TransformEmail umzubenennen, ist der Build in Ordnung, aber während des Laufens heißt es "DecryptEmailDll kann nicht gefunden werden". Ich bin nicht in der Lage zu verstehen, warum es versucht, die alte DLL mit dem alten Namen und nicht dem neuen zu finden.nicht in der Lage zu laufen .exe, die eine DLL-Datei nach dem Ändern DLL-Namen in den DLL-Projekteigenschaften
0
A
Antwort
0
Die Datei test.exe wurde mit dem zu suchenden Dateinamen erstellt. Sie müssen es also ändern und mit dem neuen DLL-Namen neu erstellen.
0
Nun, wenn Sie den Namen der DLL ändern, müssen Sie entweder die Import-Lib-Deklaration ändern, wenn Sie die DLL statisch importieren (ich nehme an, mit dem DLL-Namen bedeuten Sie auch den Namen der Lib und exp) . Oder, wenn Sie dynamisch importieren, ändern Sie den Parameter der LoadLibrary-Funktion.
Ich habe keinen Dateinamen angegeben. Die Exe ruft nur eine Funktion in dieser DLL, das ist es –
Überprüfen Sie die Quelle und die Ressourcen der test.exe, kann es nicht nur eine Funktion von jeder DLL aufrufen, muss es angeben, welche es dynamisch geladen werden soll. edit: Ein Windows .exe kann erforderliche DLLs entweder direkt in EXE-Dateiinformationen angeben, so dass die DLL beim Laden der EXE selbst vom Betriebssystem geladen wird (dann muss der DLL-Name Teil der Ressourcen oder Abhängigkeiten der .exe sein) Projekt), oder es kann dynamisch eine loadLibrary-Funktion mit dem Dateinamen .dll aufrufen und dann nach der gewünschten Funktion nach dem Namen der Funktion suchen. – Ped7g
es ist nicht dynamisch geladen. Ich habe gerade die .h von dll aufgenommen und eine seiner Funktionen aufgerufen. nichts anderes –