Dll verwenden: Struct?
-
Hallo,
ich habe über dieses Wochenende zum 1. Mal eine DLL erstellt.
VisualStudio 6 -> Neues Projekt -> MFC DLL Assistent.
Die vom Assistenen angelegte Klasse habe ich entfernt und 5 eigenen Funktionen eingebunden.
(Ich habe keine Ahnung wofür die Klasse gut sein sollte (CDllTestApp)... ?
Da mein Buch über objektorientierung noch nicht da ist, habe ich Sie einfach rausgeworfen...)Ich kann das Projekt jetzt problemlos erstellen.
0 Fehler, 0 Warnungen.Aber eine Frage stellt sich mir trotzdem noch:
Ich habe in dieser Dll einige Funktionen, welche viele Ergebnisse haben.
Daher habe ich in der Dll - .h Datei ein Struct angelegt, in das die ganzen Werte eingetragen werden.Das habe ich bis jetzt immer mit structs gemacht und es hat auch immer funktioniert.
Aber es waren halt immer eine .cpp und eine .h Datei, die ich mit #include eingebunden, und das struct mitextern MeinStruct meins[];
eingebunden habe.
Da es nun eine .dll ist -> wie verwende ich das struct jetzt?
Ich mache diese Reihenfolge, oder?:
1. Load Libary
2. Get Function Address
3. Funktion aufrufen
4. ??? (Werte aus struct lesen) ???mfg
trequ
-
Deine Datenstrukturen müssen ja auch dem Compiler bekannt sein, wenn er den Client kompiliert.
Also definierst du deine Struktur in der Headerdatei der DLL, die auch der Client einbindet.
So ist sie beiden Seiten bekannt.
Header:struct MYSTRUCT { int i; };
DLL-Datei-Source:
extern "C" __declspec( dllexport ) void FillStruct(MYSTRUCT* myStruct) { myStruct->i = 35; }