Funktion aus DLL in eine Klasse einbinden
-
ich nutze Gcc/MingW compiler (wxdev-c++). Meine OOP Kenntnisse sind begrenzt. Ansi-C kann ich hingegen ganz gut.
Ich brauche Hilfe zu folgendem Problem:
Ich binde Funktionen einer DLL (fremder Herkunft, in C kompiliert) in einer Headerdatei ein. Das funktioniert wunderbar und die Funktionen des Objekts meiner Klasse greifen problemlos darauf zu.
#ifdef __cplusplus
extern "C" {
#endif
extern __declspec(dllimport) void __stdcall MeineFunktion();
...
...
...
#ifdef __cplusplus
}
#endifIch möchte aber diese DLL Funktionen jedoch in dem Objekt selbst haben; also in dem 'private:' Teil der Klasse definiert. Grund ist eine stärkere Kapselung des Ganzen.
Stundenlanges googeln hat mir bislang nicht geholfen. Die meisten binden ausserdem die DLL's dynamisch ein, was ich in meinem speziellen Fall nicht will. Ich habe eine statisch gelinkte zugehörige .lib zu der dll und somit mit LoadLibrary() und GetProcAddress() nichts zu tun.
-
Dieser Thread wurde von Moderator/in Phoemuex aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Fremde DLLs und eigene Klassen sind verschiedene Dinge. Eine DLL ist eine Sammlung von Funktionen mit instanzeigenen Datenbereichen. Klassen dagegen sind ein erweiterter Datentyp struct mit eigenen Klassen-Funktionen. Da lässt sich miteinander direkt nichts verbinden, auch nicht mit WinApi.
-
Dann musst du die DLL statisch linken.
Die importierten Funktionen daraus muss du in einer Header-Datei dann als Funktionsprototypen deklarieren.