Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

dos app funktioniert im kompiler, aber nicht "normal"

monkeyboy / 12 Antworten / Baumansicht Nickles

hallo leute,

ich habe gestern (es sollte mal schnell werden) für einen kollegen ein kleines programm geschrieben, in dem er verschiedene zeiten für den shutdown auswählen kann oder auch ggf. abrechen kann.

das ganze im visual c++ 6.0. wenn ich dort ctrl+f5 drücke wird das prog ohne probleme kompiliert (und es funktioniert auch). nur wenn ich die exe datei anklicke, dann startet das programmm nur leider funktioniert es nicht.

hier ist die exe, der source code und das benötogte object file:

http://rapidshare.de/files/17728647/shutdown.zip.html

für jede hilfe bin ich sehr dankbar.

bei Antwort benachrichtigen
thomas woelfer monkeyboy „dos app funktioniert im kompiler, aber nicht "normal"“
Optionen

kann auf den ersten blick nichts ungewöhnliches erkennen. wie aeussert sich denn das "nicht funktionieren"?

WM_QUERY

this posting contains no tpyos.
bei Antwort benachrichtigen
monkeyboy thomas woelfer „kann auf den ersten blick nichts ungewöhnliches erkennen. wie aeussert sich...“
Optionen

es funktioniert keine eingabe, außer das verlassen des programms mit "q"

bei Antwort benachrichtigen
thomas woelfer monkeyboy „es funktioniert keine eingabe, außer das verlassen des programms mit q “
Optionen

bist du sicher das keine eingabe funktioniert, oder kann es vielleicht eher sein das die "system" calls nicht klappen, weil ein anderer suchpfad verwendet wird? (davon ab: waere mit sicherheit sinnvoller statt des system() calls die passenden windows api zu verwenden... :-))

WM_HOPETHISHELPS

this posting contains no tpyos.
bei Antwort benachrichtigen
monkeyboy thomas woelfer „bist du sicher das keine eingabe funktioniert, oder kann es vielleicht eher sein...“
Optionen

das mit den apis sagt mit im moment leider nichts, da müsste ich mich reinlesen.

ich habe das prog so geschrieben, dass bei einer eingabe auch per printf die eingabe nochmal am bildschirm angezeigt wird. dies wird auch nicht angezeigt. der call funktioniert auch nicht. allerdings habe ich gesehen, dass wenn ich zb a drücke, erst nichts passiert, aber ein anschließender druck auf q gibt den printf befehl aus. der call funktioniert aber auch dann nicht. ein anschließender druck auf q beendet dann wiederum das programm.

bei Antwort benachrichtigen
loladi monkeyboy „dos app funktioniert im kompiler, aber nicht "normal"“
Optionen

Hallo ,

ich würde Dir ja gerne helfen, aber die genannte Download URL ist eher kalt.
Ich warte bereits seit ca. 20 Minuten, dass das Download endlich los geht.

Gruss, Lothar

bei Antwort benachrichtigen
monkeyboy loladi „Hallo , ich würde Dir ja gerne helfen, aber die genannte Download URL ist eher...“
Optionen

hm, hab grad nochmal den download über den alpha mirror gemacht. ging einwandfrei...

bei Antwort benachrichtigen
loladi monkeyboy „dos app funktioniert im kompiler, aber nicht "normal"“
Optionen

Hallo,

auf Anhieb kann ich auch keinen Fehler erkennen.
Aber das ist ja auch ein ziemlicher Spaghetti Code, was die Fehlersuche erschwert.
Wie währe es diesem Konstrukt, macht die Sache lesbarer und unter
default könntest Du den Keycode ausgeben, wenn kein passendes case da war.

while (1)
{
if(kbhit())
{
key_code = getch();
switch(key_code)
{
case A:
break;
case B:
break;
.......
default:
break;
}
}

}


Gruss, Lothar

bei Antwort benachrichtigen
monkeyboy loladi „Hallo, auf Anhieb kann ich auch keinen Fehler erkennen. Aber das ist ja auch ein...“
Optionen

ok danke, werds nachher mal so versuchen.

aber ich versteh trotzdem nicht ganz, warum das prog ausm kompiler raus funktioniert und so nicht?!?

bei Antwort benachrichtigen
PaoloP monkeyboy „dos app funktioniert im kompiler, aber nicht "normal"“
Optionen

Ich kann den Code leider nicht durchgehen.
Ich kann Dir sagen das ich sowas auch schon gehabt habe. Aufmunterne Anwort des
Kollegen bei mir: "Wir liefern den Debugger mit."

Was heisst denn es funktioniert nicht?
Startet er nicht ?
Ich fange bei der Gelegenheit gerne an das Projekt zu kopieren und die Kopie mit einer Unzahl an Debug-Messages
zu versehen, nicht professionell vielleicht aber hilft. So kann ich recht schnell eingrenzen wo die Sache klemmt.
Dann kommt meistens die Frage: "Warum macht der das verdammt?"
Das könnte man hier gemeinsam schon eher lösen.

Gruß
Paul

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
monkeyboy PaoloP „Ich kann den Code leider nicht durchgehen. Ich kann Dir sagen das ich sowas auch...“
Optionen

wie oben schon beschrieben. mit ctrl+f5 im visual c++ startet das programm und funktioniert. wenn ich die exe datei starte funktioniert nur das programm ende mit q. auf alle anderen eingaben funktioniert das ganze leider nicht.

bei Antwort benachrichtigen
loladi monkeyboy „wie oben schon beschrieben. mit ctrl f5 im visual c startet das programm und...“
Optionen

Evtl. kommen bei der Ausführung unter DOS andere Keycodes.
Das kannst Du aber leicht mit der von mir geschilderten Programmvariante
im default Zweig erkennen.

bei Antwort benachrichtigen
loladi Nachtrag zu: „Evtl. kommen bei der Ausführung unter DOS andere Keycodes. Das kannst Du aber...“
Optionen

Alternativ kannst Du nach dem letzten else if
"else if (key_code == Q)"
ein einfaches else anhängen, das entspräche dann
dem default.....

Gruss, Lothar

bei Antwort benachrichtigen