Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

11

09.08.2006, 22:21

Mh aber stimmt schon, wenn man jetzt 1000 Lib's hat, dann kommt schon ne
recht große MB Zahl bei raus... Gut ist nun nicht wirklich täglich der Fall,
aber man sollte echt schon drauf achten so wenig wie möglich in den
RAM zu laden. Was nicht heißen soll, dass Stalker ein 64 K Programm werden
soll ;)

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

12

09.08.2006, 22:30

der link ist gut spiel nur ein bischen damit rum und baue es in dein tut ein

//edit: sry
Was es alles gibt, das ich nich brauche - Aristoteles

Anonymous

unregistriert

13

09.08.2006, 22:31

fut? der link ist fut?! Also bitte, muß doch sehr bitten :roll:

14

10.08.2006, 09:02

DarkHunter

Hm, ich mag Dynamik Link Libraries... ^^

Sheddex

unregistriert

15

10.08.2006, 10:57

Sorry, kann ja mal passieren :oops: ;)

16

10.08.2006, 11:16

DarkHunter

Wir wissen ja alle, was gemeint ist. :D

17

17.09.2006, 12:48

thx echt ein gutes Tutorial wollt mich immer schon mal mit dem Thema auseinandersetzen.
Mir stellt sich jetzt nur die Frage, wie ich ne ganze Klasse in die Dll importiere, um sie dann daraus normal verwenden zu können.
"Arbeite täglich an dir, dein gesamtes Leben lang. Deine Kenntnisse sollen die von gestern überwiegen und die von heute. Dies endet niemals." - HAGAKURE

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

18

17.09.2006, 13:11

Ich finde etwas sehr naja abschäulich.
Und zwar das:

C-/C++-Quelltext

1
2
3
4
5
#ifdef IMPORT
#define TUTORIAL_API __declspec(dllimport)
#else
#define TUTORIAL_API __declspec(dllexport)
#endif


Waäre es nicht sinnvoller es unterschiedlich zunennen z.b.

C-/C++-Quelltext

1
2
3
4
5
#ifdef IMPORT
#define TUTORIAL_IMPORT __declspec(dllimport)
#else
#define TUTORIAL_EXPORT __declspec(dllexport)
#endif


Den ich würde sonst bei einer riesen dll nicht mehr durchblicken was importiert/exportiert werden sollte.

Aber wenn ihr damit arbeiten könnt, dann möchte ich gerne mal wissen wie ihr das könnt =)
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Sheddex

unregistriert

19

17.09.2006, 13:26

@T-VIRUS:
Es soll doch so sein, wenn man jetzt die Dll kompiliert wird ALLES exportiert (eben in die Dll), wenn man ein Projekt hat das die Dll verwenden soll und man diese kompiliert wird ALLES importiert (aus der Dll herraus).

@Stefan L:
Sorry, aber irgendwie weiß ich nicht was du willst :D

BTW: Ich hab' jetzt den Code an meinen aktuellen Style angepasst, nur noch "unsigned und Pointer typedefs" werden aufgelöst ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

17.09.2006, 13:42

mit dllexport und dllimport kannst du auch klassen exportieren und importieren.
afaik ist die art und weise wie das implementiert ist aber compilerabhängig (so wie das ganze __declspec zeug).
d.h. du wirst probleme bekommen wenn du z.b. klassen aus einer solchen dll auf einem anderen compiler importieren willst.


eine andere möglichkeit basiert auf interfaces.
du definierst eine rein virtuelle (abstrakte) basisklasse, also ein interface, für deine klasse.
das ganze packst du in einen header.
in der dll befindet sich nun eine implementierung dieses interfaces (davon abgeleitete klasse) und eine einzelne funktion z.b. CreateInterface() die einen zeiger auf eine neue instanz des implementierten interfaces zurückgibt.
die anwendung lädt nun die dll, ruft die funktion CreateInterface() auf und bekommt nun eine instanz der in der dll befindlichen implementierung.
auf diese art und weise werden üblicherweise PlugIn systeme etc. realisiert.
auch COM funktioniert so ähnlich.

Werbeanzeige