kernel32.dll dynamisch laden
-
kann es sein, dass die kernel32.dll nicht dynamisch geladen werden kann, muss man kernel32.lib also statisch linken, damit die LoadLibrary und GetProcAddress gelinkt werden koennen? ist das richtig so??
-
Wenn Du ein Windows-Programm schreiben willst, dan ist in der "kernel32.dll" die Schnittstele zu Windows drin. Wenn Du diese nicht lädst, dan kannst Du kein Windows-Programm schreiben.
Aber Du hast ja schon Deine Frage selber beantwortet... LoadLibrary ist in "kernel32.dll" enthalten, also musst Du diese zuerst laden, oder?
-
Üblicherweise schreibt man heute selbst keine Makefiles mehr und überlässt das der mitgelieferten IDE des Compilers. Die IDE wird für Windows-Anwendungen schon die notwendigen DLLs dem Linker mitteilen.

Die WinApi-Programmierung ist komplex genug, da sollte man sich um diese Dinge nicht unnötig den Kopf schwer machen. :p
-
Es wäre theoretisch möglich wenn man einen anderen Prozess hat der einem die Adresse von LoadLibrary übergibt. Mir fällt aber wirklich kein guter Grund ein sowas zu machen.
-
Paula schrieb:
Es wäre theoretisch möglich wenn man einen anderen Prozess hat der einem die Adresse von LoadLibrary übergibt. Mir fällt aber wirklich kein guter Grund ein sowas zu machen.
Und was soll das bringen wenn die Dll nicht in deinem Speicher gemappt waere, dann kannste ja au nix ausfuehren!?
-
Jede dll ist immer im gleichen Speicherbereich. Es reicht wenn eine Anwendung sie geladen hat, sie wird in jedem anderen Prozess an der gleichen Stelle sein.
-
Da würde ich mich aber nicht drauf verlassen!