Wenn eine Anwendung statisch mit einer DLL verknüpft ist, erwartet die Anwendung, sie zu finden die DLL in einem eigenen Verzeichnis. Wenn die DLL jedoch an einem anderen Ort abgelegt wird, kann die Anwendung sie nicht laden.
Methode 1: Abhängigkeitsladen
Anstatt die DLL statisch zu verknüpfen, verwenden Sie dynamisches Laden mit LoadLibrary() und GetProcAddress(). Dadurch kann die Anwendung die DLL von einem angegebenen Pfad laden.
Methode 2: PATH-Umgebungsvariable ändern
Fügen Sie den Pfad zum Speicherort der DLL zur PATH-Umgebungsvariablen hinzu . Dadurch wird die DLL für alle Anwendungen zugänglich, die mithilfe der PATH-Variablen suchen.
Methode 3: Lademechanismus verzögern
Implementieren Sie eine benutzerdefinierte Hilfsfunktion, die die DLL basierend auf lädt den angegebenen Pfad. Dadurch wird das Laden der DLL verzögert, bis die Anwendung es benötigt.
Methode 4: Assembly-Manifest
Erstellen Sie eine Manifestdatei im Ordner der DLL und geben Sie den Ordner als Assembly an Auflisten der DLL. Fügen Sie diese Assembly mithilfe der #pragma-Kommentardirektive zum Abhängigkeitsmanifest der Anwendung hinzu.
Methode 5: Ausführbare Stub-Datei und SetDllDirectory
Erstellen Sie eine ausführbare Stub-Datei, die den DLL-Suchpfad festlegt zum Speicherort der DLL mithilfe von SetDllDirectory(), bevor die eigentliche Anwendung als DLL geladen wird.
Das obige ist der detaillierte Inhalt vonWie ändere ich den DLL-Suchpfad für statisch verknüpfte DLLs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!