Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Starwash Senior JLI'ler
Alter: 40 Anmeldedatum: 22.09.2002 Beiträge: 252 Wohnort: Zossen (bei Berlin) Medaillen: Keine
|
Verfasst am: 14.02.2003, 11:29 Titel: Strukturn aus DLLs |
|
|
Hi,
ich habe einige DLL geschrieben, welche unteranderem Strukturen bieten sollen, nun würde ich gerne wissen, wie ich diese Strukturen nutzen kann, dafür würde ich gerne wissen, wie ich es dynamisch lade und wie statisch.
"Normale" Funktionen kann ich ohne Probleme dynamisch und statisch laden.
Ach ja, die Struktur in der DLL sieht so aus:
Code: |
struct __declspec(dllexport) _Point2f{
float x;
float y;
};
|
Und kann man eigentlich auf Variablen in einer DLL speichern und dann Nutzern zur Verfügung stellen?
Gruss Tarek |
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 14.02.2003, 13:45 Titel: |
|
|
es gibts soweit ich weiß zwei arten von dll einbindung.
statisch:
mittels einer lib datei, die zu der exe, die die dll verwendet, hinzugelinkt wird.
dynamisch:
bei der dynamischen art werden funktionen, die in einer tabele in der dll aufgelistet sind mit GetProcAddress geladen.
Neue Strukturen kannst du nur verwenden, wenn du den header mit in die exe includierst und es dann kompilierst.
Du kannst aber auch eine Basisklasse erstellen.
In der dll sind dann abgeleitete klassen und eine Funktion, die instanzen der abgeleiteten klassen erstellt. Die funktion kannst du dann dynamisch oder statisch in die exe mit einbinden und so instanzen der abgeleiteten klasse erstellen. |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 14.02.2003, 13:52 Titel: |
|
|
Hmm, so ganz genau weis ich das nicht mehr, hab schon lange nicht mehr mit DLLs gearbeitet, du musst das so machen (denk ich):
1) Du kopierst die DLL und die .lib Datei aus dem Debug verzeichniss des DLL-Projekts in das Verzeichniss des Projektes, in dem du die DLL verwenden willst.
2) Die lib über Projekt->Einstellungen->Linker normal hinzufügen
3) Dann in der Datei, wo du die Klasse verwenden willst:
Code: |
#include "GenauerPfadDerDateiInDerDieKlasseDeklariertIst.h"
|
4) jetzt weis ich nicht mehr genau wie man dann ein Objekt der Klasse erzeugt:
Code: |
//Entweder so:
__declspec( dllimport ) cKlasse KlassenObjekt;
//oder so:
cKlasse KlassenObjekt;
|
Weis nicht mehr so genau wie das geht, sry |
|
Nach oben |
|
|
Starwash Senior JLI'ler
Alter: 40 Anmeldedatum: 22.09.2002 Beiträge: 252 Wohnort: Zossen (bei Berlin) Medaillen: Keine
|
Verfasst am: 14.02.2003, 15:11 Titel: |
|
|
Hey!
Wie ich eine DLL nutze, statisch und dynamisch weiß ich, aber ich weiß halt nicht, wie Strukturen daraus entnehme...
Funktionen kriege ich ohne Probleme hin...
@VerruecktesHuhn:
Danke, ich werds mal ausprobieren.
Gruss Tarek |
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 14.02.2003, 15:17 Titel: |
|
|
steht doch da:
Zitat: |
Neue Strukturen kannst du nur verwenden, wenn du den header mit in die exe includierst und es dann kompilierst.
Du kannst aber auch eine Basisklasse erstellen.
In der dll sind dann abgeleitete klassen und eine Funktion, die instanzen der abgeleiteten klassen erstellt. Die funktion kannst du dann dynamisch oder statisch in die exe mit einbinden und so instanzen der abgeleiteten klasse erstellen.
|
|
|
Nach oben |
|
|
|