Ich habe eine .dll unter WinXP erstellt, die angibt, dass es DWMAPI.DLL nicht finden kann, wenn es geladen wird. Das Problem ist, dass diese DLL eine Vista-DLL ist, und dies ist ein bekanntes Problem für XP-Benutzer, die IE7 installiert haben. Die Empfehlung ist, IE7 zu deinstallieren oder das .NET Framework über Hinzufügen/Entfernen von Programmen zu reparieren. Ich habe die Reparatur gemacht, und nichts hat sich geändert. Ich bin nicht dabei, IE7 zu deinstallieren, da es eine bessere Lösung geben muss, die nicht "Windows neu installieren" entspricht.Wie behebt DWMAPI.DLL Verzögerung-Last-Abhängigkeit unter WinXP?
Ich habe schlechte Dinge über Leute gelesen, die versuchten, IE7 zu deinstallieren, also zögere ich, diese Route zu gehen.
Ich verwende C++ unter Visual Studio 2003 (7.1). Ich sehe keine Option, bei der ich beim Laden der Anwendung das Laden verzögert haben könnte. Ich habe nur Standardeinstellungen verwendet, als ich das DLL-Projekt erstellt habe. Ich habe gerade eine interessante Option gefunden, Linker-> Input-> Delay Loaded DLLs, also setze ich DWMAPI.DLL ein, um es zu verzögern. Allerdings bekomme ich dies beim Verknüpfen:
LINK : warning LNK4199: /DELAYLOAD:dwmapi.dll ignored; no imports found from dwmapi.dll
.. und es hat natürlich nichts geändert, wenn ich versuche, meine DLL zu laden. Für den Teufel davon, habe ich den ganzen Baum von DLLs hinzugefügt, die zu DWMAPI.DLL führen, und ich bekomme die gleiche Nachricht. (Für den Datensatz ist es foundation.dll-> shell32.dll-> shdocvw.dll-> mshtml.dll-> ieframe.dll-> dwmapi.dll.)
Um genauer zu sein, was ich tue ich bin eine Maya-Plugin zu schreiben und den stets hilfreich Text im Script-Editor erhalten:
// Error: Unable to dynamically load : D:/blahblahblah/mydll.mll
The specified module could not be found.
//
// Error: The operation completed successfully.
//
// Error: The operation completed successfully.
(mydll) //
I verwendet Dependency Walker, um zunächst das Problem aufzuspüren, und das ist, was mich führen zu dwmapi.dll. Dies sind die Botschaft richtet gibt mir und dwmapi.dll ist das einzige, was ein gelbes Fragezeichen daneben hat:
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
Gerald ist richtig. Maya verwendet tatsächlich einen anderen PATH als den Dependency Walker. Mein Plug-in lädt eine andere DLL (für die Bildverarbeitung), die im Verzeichnis der Maya-Plugins liegt, und hängt davon ab, dass es kein Problem gibt, Maya aber nicht. Ich musste "; Plug-Ins" zum PATH in Maya.env hinzufügen.
Nachdem dieses Problem nicht mit DWMAPI.DLL in Verbindung stand, DWMAPI jedoch ein häufiges Problem ist, werde ich den besten Link, den ich über das DWMAPI-Problem gefunden habe, auf der Novell-Website here veröffentlichen. Im Grunde haben die meisten Programme diese Warnung in der Datei depends.exe, aber wenn ein Symbol für die Verzögerung beim Laden daneben angezeigt wird und Sie sicher sind, dass das Programm DWMAPI nicht direkt oder indirekt aufruft, ist es in Ordnung. Das Problem ist woanders. Wenn das Verzögerungslade-Symbol nicht vorhanden ist, müssen Sie die Optionen/DELAY und/DELAYLOAD in Visual Studio anzeigen. Die Tatsache, dass das abhängt, gab mir eine "Warnung" und kein "Fehler" war ein Hinweis darauf, dass DWMAPI nicht automatisch geladen wird.
Ich traf dieses Problem auf einem unserer Windows 2003 Server. Es ist nur eine blutige Konsolen-App und doch behauptet sie (oder eine andere Abhängigkeit), dass sie auch dwmapi.dll haben möchte. Ich würde gerne eine definitive Antwort darauf sehen. +1. – Kev
Ich denke, viele der Ansichten stammen von Google Drive-bys. Nur die Suche nach "dwmapi.dll" hat dies als zweites Ergebnis. –