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

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

21

13.11.2007, 14:30

Überlegt mal was bei einem Funktionsaufruf passiert (vorallem was mit den Parametern passiert).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

22

13.11.2007, 14:32

Sollte vielleicht so aussehen: init (GfxDevice& gfxDC)
Da gfxDC nur innerhalb der Funktion init Gültigkeit hat...

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

23

13.11.2007, 14:34

sry ich weiss es nicht.. ich hab keine ahnung warum mein objekt auf einmal nicht mehr gültig ist nur weil ich es einer funktion übergebe.. obwohl eigentlich .. gültig scheint es ja noch gewesen zu sein..

in der while schleife hab ich dann noch immer ganz normal funktionen aufrufen können von dem objekt.. allerdings war HDC m_backBuffer nicht mehr gültig, da im destruktor ReleaseDC(m_backBuffer); aufgerufen wird.
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

24

13.11.2007, 14:35

Zitat von »"$nooc"«

sry ich weiss es nicht.. ich hab keine ahnung warum mein objekt auf einmal nicht mehr gültig ist nur weil ich es einer funktion übergebe..


Wenn du ein Objekt nicht per Zeiger oder Referenz an eine Funktion übergibst, dann erstellt C++ eine funktionslokale Kopie, die beim verlassen der Funktion natürlich zerstört wird! Wir sind hier ja nicht bei C#, ne? :)
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

25

13.11.2007, 14:38

omg.. das heisst es wird der destruktor aufgerufen, weil die kopie den gültigkeitsbereich verlässt, und 'zerstört' mir mein objekt? liege ich da jetzt richtig? wenn ja, dann erklärt das viel, und ich hab mal wieder was neues gelernt :D
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

26

13.11.2007, 14:46

Eins! Setzen!
Siehe auch hier:
http://de.wikibooks.org/wiki/C++-Programmierung:_Funktionen
(Mal wieder 'n Wink mit'm Zaunpfahl :))

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

27

13.11.2007, 14:52

Zitat von »"$nooc"«

omg.. das heisst es wird der destruktor aufgerufen, weil die kopie den gültigkeitsbereich verlässt, und 'zerstört' mir mein objekt? liege ich da jetzt richtig? wenn ja, dann erklärt das viel, und ich hab mal wieder was neues gelernt :D


Dein Objekt wird nicht zerstört, sondern die Kopie des Objektes. Mit der du unglücklicher Weise die Grafiken geladen hast.
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

28

13.11.2007, 17:14

ok, ich denke ich habs jetzt erkannt und verstanden ^^
peinlicher fehler .. :oops: wenn ichs mir recht überlege.. sogar sehr peinlich.. ^^
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Werbeanzeige