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

Phil_GDM

Alter Hase

  • »Phil_GDM« ist der Autor dieses Themas

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

1

27.07.2005, 10:01

Bei App-Shutdown soll Funktion aus Dll aufgerufen werden

Ich schreibe gerade ein DebugTool. Das ganze ist nichts anderes als eine Mfc-Dll. Das Problem das ich jetzt habe ist, dass beim Beenden der Host-Applikation unbedingt noch eine Funktion aus der Dll aufgerufen werden muss. Dies muss aber auch passieren, wenn die Applikation abstürzt, oder über den "StopDebug"-Button in VS beendet wird.

Ich habe schon versucht, die Funktion in die ExitInstance Methode der Dll zu packen, diese wird bei den oben genannten Fällen aber auch nicht aufgerufen.

Hat irgendjemand von euch vielleicht eine Idee, wie man diesen Funktionsaufruf für die oben genannten Fälle erreichen kann?

mfg Philipp

2

27.07.2005, 10:44

du kannst die FUnktion static machen, und dann aus dem tool, das die dll läd, wenn das ondestroy() onclose() usw macht, die Funktion aufruft...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Phil_GDM

Alter Hase

  • »Phil_GDM« ist der Autor dieses Themas

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

3

27.07.2005, 11:10

Das nutzt mir aber nichts, wenn das Programm abstürzt, bzw. wenn ich den StopDebug-Button benutze. Denn da wird kein onclose, ondestory etc. mehr aufgerufen (das ist ja das eignetliche Problem).

Aber könnte es nicht sein, dass das BS die Dll nach Programmabsturz trotzdem wieder "freigibt", und dass man auf diesen Fall irgendwie reagieren kann?

mfg Philipp

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

27.07.2005, 13:30

Was du suchst dürfte try und catch sein
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.

Phil_GDM

Alter Hase

  • »Phil_GDM« ist der Autor dieses Themas

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

5

27.07.2005, 14:12

Könntest du mir das genauer erklären.
Ich versteh nämlich nicht, wie mir try/catch bei meinem Problem helfen soll.

mfg Philipp

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

27.07.2005, 14:46

Naja bei Abstürzen hilft das schon. Ansonsten: Hau das Log Teil als eigenes Programm hin das per SendMessage die Daten von der Log DLL bekommt. Dadurch loggt dein Teil weiter auch, wenn das Hauptproggie gestoppt wird.
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.

Phil_GDM

Alter Hase

  • »Phil_GDM« ist der Autor dieses Themas

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

7

27.07.2005, 15:12

Dieser Lösungsansatz gefällt mir nicht besonders.

Ich werde mein Problem noch ein wenig konkretisieren.
Mein Logger soll eine XML-Logfile schreiben (dazu verwende ich TinyXML). Da ich nicht ständig Festplattenzugriffe haben möchte (außerdem kann TinyXml nur die gesamte Datei auf einmal schreiben => bis zu ~20 mal pro Sekunde müssten mehre MB auf die Festplatte geschrieben werden) was normalerweise nicht zielführend ist.
Deshalb möchte ich die LogDatei erst schreiben, wenn das Programm terminiert.

vielleicht gibt es da ja einen besseren Ansatz. Oder ist es vielleicht für Debug-Zwecke sogar in Ordnung, so viele Festplattenzugriffe zu haben?

mfg Philipp

Phil_GDM

Alter Hase

  • »Phil_GDM« ist der Autor dieses Themas

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

8

28.07.2005, 11:50

Also ich habe jetzt 2 Tage versucht eine Lösugn zu finden. Anscheinend ist es nicht möglich, auf das StopDebug von Visual Studio zu reagieren. Sogar in der MSDN steht, dass VisualStudio mit terminate etc. nicht richtig umgehen kann.

Also bin ich zu dem Schluss gekommen, dass die Applikation halt "normal" beendet werden muss, damit man einen Log-Output erhlält (das mach ich jetzt mit try/catch ;) ).

mfg Philipp

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

9

30.07.2005, 12:07

Kannst ja mal schauen, ob DllMain aufgerufen wird.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

10

30.07.2005, 12:34

@phil meine Idee war, das Loggsystem extern zu machen und diesem dann immer eine Art bereitschaftssignal zu geben und wenn das länger ausbleibt kann man davon ausgehen, dass der Prozess gestoppt wurde.
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.

Werbeanzeige