DllMain und LoadLibrary = Error 126?



  • Hallo zusammen,

    ich schreibe eine dll, die in ihrer DllMain procedure einen LoadLibrary aufruf startet. Bei mir auf Windows 2000 und Win98 funktioniert das wunderbar. Doch andere Benutzer berichten, auf Windows XP käme der Fehler 126 "The module could not be found". Ich weiß, dass man in der DllMain keinen LoadLibrary Aufruf durchführen darf, aber bin mir nicht sicher, ob es daran liegt: würde dann wirklich der Fehler 126 auftreten?
    Die Pfadangabe als Parameter bei der LoadLibrary habe ich überprüft, die stimmt auf jeden Fall.

    Vielen Dank!
    Gruß
    Jan



  • Tja, die MSDN sagt dazu nur:

    It is not safe to call LoadLibrary from DllMain.

    Was soviel bedeutet wie: Es kann funktionieren, muss aber nicht 😉



  • Wie genau kann ich das umgehen?



  • Statisch linken



  • Oder aber:
    Die DLL laden, wenn sie gebraucht wird, falls das relativ selten der Fall ist!



  • Vielen Dank für deine Antwort!

    Statisch linken wäre die beste Lösung. Doch die dll ist in Visual Studio.NET (c++) gemacht und hat eine library .lib, die ich linken müsste. Die Exe ist mit dem GNU (MINGW) compiler gemacht, und der benötigt keine .lib Dateien, sondern .a Dateien als Librarys. Leider habe ich schon lange nach einem Converter gesucht, aber keinen gefunden. Was kann ich tun?

    Nochmals vielen Dank!


Anmelden zum Antworten