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

1

25.06.2003, 18:21

Schon wieder DLL Files

Immer diese DLL Files. Das kann einem schon auf die Nerven gehen. Das Mapping von Globalen Variablen und der eigene Speicherbereich sind zwar schon Vorteile, aber im Moment sind sie eigentlich nur Störend.

Gibt es eine Möglichkeit wie man den Speicherbereich zusammen legen kann? So das wenn meine Basis DLL "r3d.dll" nur einmal im Speicher liegt, sammt dem dazugehörigen Speicher?

Für ein bessere Verständnis. Die DLL r3d.dll wird auch von den PlugIn's benutzt. Was bedeutet das mit jedem PlugIn ein eigner Speicherbereich für die r3d.dll angelegt wird :kotz: und genau das soll Windows nicht.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

2

26.06.2003, 00:39

Also ich habe das Problem jetzt lösen können. Für alle die vor einem vergleichbaren Problem liegen. Es gibt zwei Lösungen:

1)

Quellcode

1
2
3
4
#pragma data_seg ("shared")
bool g_bla = false;
#pragma data_seg ()
#pragma comment(linker,"/SECTION:shared,RWS")
Damit kann man Variablen festlegen die nicht vom System gemapped werden. Liegen also wie Funktionen nur einmal im Speicher, trotz DLL.

2) Das Singleton Design. Auch wenn viele was gegen dieses Design haben, führt es hier ebenfalls zu einer Lösung. Weshalb weis ich noch nicht. Aber scheinbar haben static Variablen in Klassen mit Kombination mit static Methoden die gewünschte Wirkung.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

26.06.2003, 10:29

Guter Tipp :)
Da weiß ich ja schon, worauf ich bei meiner nächsten Engine aufpassen muss...

4

26.06.2003, 22:04

Jup :)

Aber ich weis nicht warum die static Variante Funktioniert ??? Diese Lösung kann ja nur deshalb Funktionieren wenn static Variablen nicht gemapped werden. Das würde aber irgendwie der DLL Philosophy(ie) wiedersprechen.

Ich glaub ich werd mir mal ein kleines Test App schreiben.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige