Dll einbinden Visual Studio 2008 C++
-
Hallo,
wo kann ich DLL einbinden in Visual Studio 2008 C++?
Was bedeuten .lib Dateien, muß man die auch neben dll's einbinden?Danke
Gruß
-
Eine DLL kannst du mit LoadLibrary dynamisch laden und mit GetProcAddress kannst du dir Zeiger auf die exportierten Funktionen holen. Da musst du einiges selber machen.
Es gibt aber auch die Möglichkeit eine lib für die DLL einzubinden. Das ist einfacher, weil du die Funktionen direkt verwenden kannst. Die lib macht praktisch alles für dich (laden der DLL und Funktionen).
Die lib gibst du in den Projekteinstellungen an (Linker).
-
Hallo ihoernchen,
die lib habe ich unter Linker eingebunden, aber es kommt trotzdem zur Laufzeit eine DLLNotFoundException (aus dem Kopf).
Kannst Du mir einbischen Code zur LoadLibrary und GetProcAddress posten?
Danke!
Gruß
-
Die DLL muss sich in einem bekannten bzw ereichbaren Verzeichnis befinden. Das ist z.B. das Exe Verzeichnis (http://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx).
Du bekommst auch eine ähnliche (oder sogar gleiche) Fehlermeldung, wenn die zu ladende DLL weitere Verknüpfungen hat die nicht gefunden werden können (also die DLL versucht selber auch eine oder mehrere DLLs zu laden).Eine genaue Fehlermeldung wär sinnvoll.
Ansonsten hilft auch GetLastError http://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx und FormatMessage http://msdn.microsoft.com/en-us/library/ms679351(VS.85).aspx.