Programm nach beenden immer noch als Prozess gelistet



  • Hallo ich hab ein problem dass ich so noch nie beobachten konnte...

    Ich hab es beim Debugen gemerkt weil ich da oft das programm gestartet hatte und im taskmanager in der Prozessliste waren dann massig prozesse mit dem Namen meines programms o0

    Ich benutze VC++ auf Win7 32bit aber das problem tritt auch auf WinXP auf...

    Jemand ne Idee was dass sein könnte oder wie ich den prozess killen könnte den die fressen dann ja weiterhin RAM und mit 20mb nicht grade wenig pro prozess 😕


  • Mod

    Ich würde sagen, Dein Programm schließt nicht, weil es z🅱 noch COM Objekte inerhalb Deines Programmes gibt, die nicht freigegeben wurden.

    Setz Einen Breakpoint of CFrameWnd::OnClose, debugge durch den Code.
    Du wirst sehen, dass Dein Programm nur versteckt wird, aber eben nicht beendet.



  • Irgendwas schließt du nicht richtig. Gibt's vielleicht einen Thread, den du nicht beendest?



  • Setz Einen Breakpoint of CFrameWnd::OnClose, debugge durch den Code.

    mmmh es handelt sich um ein CLR Projekt... was meinst du mit debuge?
    ich rufe nur mein programm auf und wenn ich oben das kleine rote x zum schliessen des programmes drücke müsste doch windows von alleine alle aktivitäten stoppen oder hab ich da was falsch verstanden? ist doch in der System::Windows::Forms Library enthalten oder muss ich das nochma extra machen?

    mmmh was sind den com objekte? sorry bin erst seit kurzem mti gui coden dabei... ich lade funktionen aus einer dll hat das vielleicht was damit zu tun? wenn ja wie schliesse ich das ganze dann?
    hab schon versucht auf den event des schliessen knopfes zu setzen aber kann nur die form anwählen...



  • Wenn Du noch einen Thread gestartet hast und diesen nicht *explizit* als "Background=true" markiert hast, dann läuft Dein Programm weiter, auch wenn der Hauptthread sich beendet hat...



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • mmmh explizit hab ich gar keine threads gestartet...
    nur ein normales prog mails sendet und dabei musik spielt 😕
    was mich wundert ist auch die memory auslastung... ca 20 mb für so ein simples prog gramm ist das normal?! ich verwende die system.net.mail klasse, und bin noch neu in der gui programmierung zb bin ich mir bei einer sache nicht ganz sicher:

    ich schreibe das meiste meines quellcodes in die form.h was mich wundert denn ich dachte immer man schreibt den code in die main.cpp wenn ich dort aber funktion vereinbaren will und sie in form.h verwenden will bekomme ich die fehlermeldung dass die Datei nicht bekannt sei 😕

    das gleiche wenn ichn die funktionen in einen header definiere... noch eine frage:
    wenn ich zb den string eine textbox auslesen möchte benutze ich:

    this->textbox1->Text
    

    hat das vielleichtb was mit der hohen speicherauslastung zu tun? gibt es da eine elegantere methode?



  • 1. 20 MB ist "Standard" für ein .NET Programm

    2. Das der ganze Code in der h-Datei landet ist dem geschuldet, dass C++/CLI eigentlich nur für InterOp gedacht ist und somit in den GUI-Designer nichts investiert wurde... also hat man den "einfachsten" (und unschönsten) Weg gewählt, all Event-Handler in der h-Datei zu erzeugen...
    2.1. Was automatisch die Schlussfolgerung nach sich zieht: WARUM nimmst Du nicht C#???? Es macht keinen Sinn C++/CLI zu verwenden, wenn Du eh .NET-Klassen verwendest... das ist reine Zeitverschwendung und erschwert Dein Deployment (auf die Probleme wirst Du dann auch bald stossen)

    3. Dein anderes Problem verstehe ich nicht...



  • Danke Jochum für die Antworten!
    mmmh ja C# is mir dann iwie zu .netig, will in Zukunft auch auf Win32 umsteigen bzw mit MFC arbeiten!
    Ok das mit dem CLI war mir nicht bewusst und ist wirklich keine Schöne Lösung! Wozu ist den C++/CLI geeignet? Eigentlich möchte ich auf .net verzichten aber es macht es ja schon alles sehr viel einfacher...
    Ja ich sehe schon das es zu Problemen kommt, ich hab zZ random bugs die ich mir einfach nicht erklären kann, mag aber auch an meienr mangelnden Erfahrung liegen...



  • C++/CLI ist für InterOp zwischen .NET und native Code gedacht.

    Wenn Du bei reinem native Code bleiben willst, dann nimm die MFC oder wxWidgets...


Anmelden zum Antworten