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.
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
kann auf den ersten blick nichts ungewöhnliches erkennen. wie aeussert sich denn das "nicht funktionieren"?
WM_QUERY
es funktioniert keine eingabe, außer das verlassen des programms mit "q"
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
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.
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
hm, hab grad nochmal den download über den alpha mirror gemacht. ging einwandfrei...
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
ok danke, werds nachher mal so versuchen.
aber ich versteh trotzdem nicht ganz, warum das prog ausm kompiler raus funktioniert und so nicht?!?
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
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.
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.
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