Forum: PC-Programmierung Dos Box aus C schließen


von Lutz G. (Firma: KupferKabelbieger GmbH) (lgeis)


Lesenswert?

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.

von Daniel A. (daniel-a)


Lesenswert?


von Dr. Sommer (Gast)


Lesenswert?

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.

von Lutz G. (Firma: KupferKabelbieger GmbH) (lgeis)


Lesenswert?

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.

von Lutz G. (Firma: KupferKabelbieger GmbH) (lgeis)


Lesenswert?

Daniel A. schrieb:
> Daniel

Hallo Daniel,

das funktioniert so. Vielen Dank :-)

von Lutz G. (Firma: KupferKabelbieger GmbH) (lgeis)


Lesenswert?

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
Noch kein Account? Hier anmelden.