Visual C++ 2008 (Hello World funktioniert nicht mal)???
-
Hallo zusammen,
ich habe mir mal Visual C++ 2008 zugelegt auf Windows7 64bit.
Habe was gelesen, dass man spezielle Patches oder ähnliches benötigt,
damit das auf 64bit läuft.Ich habe auch schon gegoogelt aber ich habe keine wirkliche Lösung gefunden.
Habe nur was gelesen von Microsoft Development (SDK) o.ä.Könnt ihr mir da helfen?
Habe mal als Test nur Hello World laufen lassen, öffnet sich für 1 Sekunde ein DOS Fenster und geht wieder zu, bringt aber keinerlei Fehlermeldung.
Wäre super für Hilfe
Gruß
Kasmo
-
Das Öffnen und schließen des Fenster ist normal. Einfach am Ende deines Programms cin.get() (also noch vor dem return) und das passiert nicht mehr.
Nein, irgendwelche Patches oder so benötigt man nicht, aber wenn du mal deine Anwendungen auch für 64bit kompilieren willst, dann musst du auch die X64 Compiler and Tools mit installieren.
Falls du das noch nicht getan hast, dann einfach nochmal das Setup starten und über Add Features oder so das hinzufügen.
-
Also laut meinem Tutorial sieht das Hello World so aus
#include <iostream.h> #include <stdio.h> void main(void) { cout << "Hello World" << endl; getchar(); }
Laut Tutorial müsste das Programm offen bleiben?
-
kasmo schrieb:
Also laut meinem Tutorial sieht das Hello World so aus
#include <iostream.h> #include <stdio.h> void main(void) { cout << "Hello World" << endl; getchar(); }
Laut Tutorial müsste das Programm offen bleiben?
Genau!
Funktioniert es?
Wenn nicht, kommen evtl. Warnings/Errors?
Aber eigentlich müsste das so funktionieren.
-
ja das ist ja das rätselhafte für mich.
es geht wirklich nicht
DOS Fenster geht auf und wieder zu.Hab Win32 consolenanwendung gemacht auffem 64bit Windows7.
Hab alles nach Anleitung gemacht weil ich mit Visual C++ nicht so vertraut bin.
Trotzalledem funktioniert es nicht.
Habe Statuslog nachgeschaut es wird wirklich nichts angezeigt an Error, Warning sonst was.
Überall steht ???? erfolgreich geladen.
-
Öffne doch mal cmd.exe und starte dein Programm daraus.
Da siehst du ob dir dein Programm den Text ausgibt oder ob einfach nur getchar "überlaufen" wird.Ansonsten probier doch mal folgendes:
#include <iostream.h> #include <stdio.h> void main(void) { /* Variable die später mit dem über die Tastatur eingegebenen Zeichen gefüllt wird.*/ char chReturn = '\0'; cout << "Hello World" << endl; cin >> chReturn; }
-
Das Tutorial ist sehr alt und / oder sehr schlecht!
Zum Konsolen- Schliessen gibts in der FAQ einen Eintrag:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlHier dein Code mit Kommentaren versehen:
//#include <iostream.h> // iostream.h gehört nicht zum C++ Standard! #include <iostream> //#include <stdio.h> // Gehört nicht zu C++ Standard (wenn schon, dann <cstdio>, wird für getchar(..) benötigt. Jedoch wird dieser Header für die in der FAQ beschriebene Lösung nicht benötigt. //void main(void) // void als return Wert von main war nie und ist nie standardkonform gewesen. // Ausserdem ist void als Argument in C++ unüblich int main() { //cout << "Hello World" << endl; // Hier ist der Namespace mitanzugeben (kommt mit dem "neuen" iostream Header) std::cout << "Hello World" << std::endl; //getchar(); Ersetze das mit der Lösung aus der FAQ!! }
-
danke für den Hinweis.
Ja ich habe das des öfteren gehört das diese Programmierwege veraltet sind.
Aber irgendwie finde ich ums verrecken kein Tutorial oder sonstiges wo die neuen c++ standards beschrieben werden.
-
so habe jetzt mal den Statuslog kopiert weil ich jetzt erst daheim bin.
Auch mit den namespaces geht es wieder zu.
Schaut mal hier
"test.exe": "C:\Users\Kasmo\Documents\Visual Studio 2008\Projects\test\Debug\test.exe" geladen, Symbole wurden geladen.
"test.exe": "C:\Windows\SysWOW64\ntdll.dll" wurde geladen
"test.exe": "C:\Windows\SysWOW64\kernel32.dll" wurde geladen
"test.exe": "C:\Windows\SysWOW64\KernelBase.dll" wurde geladen
"test.exe": "C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcr90d.dll" wurde geladen
Das Programm "[1992] test.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
-
Huhu,
der Bericht bringt keinem was
Setz das noch unter der Ausgabe:
std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get();
-
das habe ich auch darunter gesetzt und es schliesst sich wieder...
des is ja der wahnsinn ey, hatte noch nie so probleme mit ner IDE wie visual c++
-
Locker bleiben! Das Problem sitzt meistens nicht im sondern vor dem Computer! Ich brauch emir nur mal deine erste Zeile im Source angucken, und weiß jetzt schon, das der Code falsch ist!!! Aber das hat ja schon theta korrigiert.
So, wie schließt sich die Konsole nicht, wenn man sie aus MSVC startet? In dem man das Programm einfach mit STRG+F5 startet.
Wenn man das Programm mit F5 startet, schließt sich die Konsole, weil man im Debugger ist und die IDE davon ausgeht, das man einen Breakpoint gesetzt hat.
Diese Tastenabfrage im Code ist das lächerlichste Mittel, das ich bisher gesehen habe. Weil wenn sich das Programm beendet, hat normalerweise auch die Konsole/Fenster zu schließen. Stellt euch mal vor, ihr beendet MS-Word und es poppt die Meldung auf "Taste drücken, zum Beenden!". Total unsinnig, da würde ich ausrasten.
-
wenn ich STRG+F5 mach dann öffnet sich die konsole und sagt ich soll taste drücken damits zu geht..
aber HELLO WORLD erscheint überhaupt nicht, egal welche codes ich probier