tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
525
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Reticent Reticent ist offline Mitglied Gold
    Registriert seit
    Mar 2004
    Beiträge
    222
    Hallo,

    ich bin gerade auf ein Problem gestoßen. In meiner c#-Anwendung benutze ich
    Code :
    1
    
    this.pictureBox1.Image.Dispose();
    um die Resourcen freigeben. Jetzt soll ich diese Anwendung in c++ umwandeln. (natürlich "->" statt ".")
    99,9% sind schon fertig, bloß der Compiler sagt, dass dieses Dispose() nicht vorhanden ist. Ich kann die Funktion sehen, aber sieht wie private aus.

    Weiß einer wie ich in dem Fall die Resourcen freigeben kann?

    Danke für jede Hilfe!
     

  2. #2
    MFC openGL MFC openGL ist offline Mitglied Brokat
    Registriert seit
    Oct 2004
    Beiträge
    483
    Setze das Objekt = NULL, das bewirkt das gleiche.

    Gruß

    MFC OpenGL
     
    Sprache : C/C++/C# & MFC
    Compiler : MSVC++ 7 / VS2003.net
    OS : Windows XP/2k

  3. #3
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Das ist nicht richtig. Zumindest wenn wir nur bei C# bleiben. Dispose wird verwendet, um Ressourcen aufzuräumen. Wird das Objekt nur null gesetzt, passiert das nicht. D.h. dass eventuell bestimmte Ressourcen nicht freigegeben werden (Filezugriffe etc.)

    Wenn es kein Dispose gibt, dann kannst eben auch keines aufrufen.
     

  4. #4
    Reticent Reticent ist offline Mitglied Gold
    Registriert seit
    Mar 2004
    Beiträge
    222
    Danke, ich habe jetzt mit pictureBox1->Image = nullptr; und es funktioniert soweit. Blos weiß ich jetzt nichct ob etwas im speicher jedes mal bleibt.

    Kann man irgendwie prüfen ob sich im speicher noch etwas befindet.
     

  5. #5
    MFC openGL MFC openGL ist offline Mitglied Brokat
    Registriert seit
    Oct 2004
    Beiträge
    483
    Zitat Zitat von Norbert Eder
    Das ist nicht richtig. Zumindest wenn wir nur bei C# bleiben. Dispose wird verwendet, um Ressourcen aufzuräumen. Wird das Objekt nur null gesetzt, passiert das nicht. D.h. dass eventuell bestimmte Ressourcen nicht freigegeben werden (Filezugriffe etc.)

    Wenn es kein Dispose gibt, dann kannst eben auch keines aufrufen.
    Glaube du warst doch derjenige der sagte : "Wenn ein Objekt = null gesetzt wird, wird der GC es beim nächsten Mal aus dem Speicher entfernen" oder nicht ?

    Also wenn ja, dann ist das doch genau was er wollte, ok, es ist nicht sofort, aber ich denke das macht keinen Unterschied, weil sofern der Speicher benötigt wird kommt der GC ja sowieso zum Einsatz...


    Gruß

    MFC OpenGL
     
    Sprache : C/C++/C# & MFC
    Compiler : MSVC++ 7 / VS2003.net
    OS : Windows XP/2k

  6. #6
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Ja, das hab ich gesagt, ABER ich hab in diesem Text auch noch einiges mehr dazugeschrieben. Du kannst dies aber gerne hier nachlesen. Interessant ist der Punkt mit dem Dispose-Pattern.

     

Ähnliche Themen

  1. VB.NET Kein Zugriff auf Excel Projekt in Projektmappe
    Von Terminator2 im Forum .NET Café
    Antworten: 6
    Letzter Beitrag: 21.06.09, 11:26
  2. Suche C/C++ Coder für ein OpenSource 3D Spiel-Projekt (kein FPS)
    Von MetalBeast im Forum Stellenangebote (unentgeltlich)
    Antworten: 0
    Letzter Beitrag: 12.03.08, 15:34
  3. von einem c++ projekt auf ein c projekt zu greifen
    Von sponge_bob im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 19.05.06, 21:20
  4. kann kein ASP-Projekt anfangen
    Von colblake im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 29.06.04, 15:17
  5. Antworten: 1
    Letzter Beitrag: 02.05.04, 11:59