Moin, kurze Frage : wie schließe ich eine DOS Box aus einem C Prog, in die ich z.B. mit fprintf(stdout, "Hallo Welt\n"); eine Ausgabe gemacht habe, ohne, dass ich das entsprechende Programm beende. Etwas genauer : ich mache eine Fehlerausgabe in eine DosBox aus einer C-DLL heraus. Die DLL bleibt geladen, ich möchte aber die DosBox wieder schließen.
Meinst du die Console? Hast du die Funktionen schon Ausprobiert: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632678%28v=vs.85%29.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms683175%28v=vs.85%29.aspx
Lutz G. schrieb: > Etwas genauer : ich mache eine Fehlerausgabe in eine DosBox > aus einer C-DLL heraus. Sowas ist immer super nervig, wenn man DLL's verwendet die eigenständig irgendwie Fehler anzeigen und den Nutzer verwirren, und man als Anwendungsprogrammierer nicht darauf reagieren kann. Mach es vernünftig, und leite Fehler korrekt an die Anwendung weiter, sodass diese die anzeigen oder anders behandeln kann. Dafür gibts schon lange bekannte Mechanismen wie Exceptions oder einfach Fehler Codes.
Dr. Sommer schrieb: > Lutz G. schrieb: >> Etwas genauer : ich mache eine Fehlerausgabe in eine DosBox >> aus einer C-DLL heraus. > > Sowas ist immer super nervig, wenn man DLL's verwendet die eigenständig > irgendwie Fehler anzeigen und den Nutzer verwirren, und man als > Anwendungsprogrammierer nicht darauf reagieren kann. Mach es vernünftig, > und leite Fehler korrekt an die Anwendung weiter, sodass diese die > anzeigen oder anders behandeln kann. Dafür gibts schon lange bekannte > Mechanismen wie Exceptions oder einfach Fehler Codes. Hallo Dr. Sommer, danke für den Beitrag. Die aufrufenden Anwendung ist eine fertig compilierte Software, auf die ich keinen Einfluss habe. Hier kann ich nur begrenzt auf Meldungen der DLL reagieren. Genauer gesagt nur auf das, was der Ersteller der Anwendung zugelassen hat. Die angestrebte Consolen Ausgabe in der DLL kann über eine iniDatei-Eintrag eingeschaltet werden und nur zum Debuggen während der Laufzeit und nicht für den Bediener gedacht. Der Bediener wird sie im Regelbetrieb nicht sehen. Dann wird eine Protokolldatei geschrieben.
Lutz G. schrieb: > Dr. Sommer schrieb: >> Lutz G. schrieb: >>> Etwas genauer : ich mache eine Fehlerausgabe in eine DosBox >>> aus einer C-DLL heraus. >> >> Sowas ist immer super nervig, wenn man DLL's verwendet die eigenständig >> irgendwie Fehler anzeigen und den Nutzer verwirren, und man als >> Anwendungsprogrammierer nicht darauf reagieren kann. Mach es vernünftig, >> und leite Fehler korrekt an die Anwendung weiter, sodass diese die >> anzeigen oder anders behandeln kann. Dafür gibts schon lange bekannte >> Mechanismen wie Exceptions oder einfach Fehler Codes. > > Hallo Dr. Sommer, > > danke für den Beitrag. > > Die aufrufenden Anwendung ist eine fertig compilierte Software, > auf die ich keinen Einfluss habe. Hier kann ich nur begrenzt auf > Meldungen der DLL reagieren. Genauer gesagt nur auf das, was der > Ersteller der Anwendung zugelassen hat. > > Die angestrebte Consolen Ausgabe in der DLL kann über eine > iniDatei-Eintrag > eingeschaltet werden und nur zum Debuggen während der Laufzeit und nicht > für den Bediener gedacht. Der Bediener wird sie im Regelbetrieb nicht > sehen. Dann wird eine Protokolldatei geschrieben. Hallo Dr. Sommer, generell stimme ich Dir da natürlich völlig zu :-) In diesem Falle ist die DLL aber die zentrale Anwendung, die zwischen dem TesterProgramm und einer DB steht und die Kommunikation macht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.