visual c++ anfängerproblem
- 
					
					
					
					
 Leute ich hab gerade angefangen, bin also blutiger beginner. das is der code... #include "stdafx.h" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout << "blabla"; getchar(); return(0); }das problem ist, dass sich das konsolenfenster sofort schliesst... "hallo welt.exe": "C:\Users\David\Documents\Visual Studio 2010\Projects\hallo welt\Debug\hallo welt.exe" geladen, Symbole wurden geladen. "hallo welt.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Symbole geladen (ohne Quellinformationen). "hallo welt.exe": "C:\Program Files\AVAST Software\Avast\snxhk.dll" geladen, Exporte wurden geladen. "hallo welt.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Symbole geladen (ohne Quellinformationen). "hallo welt.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Symbole geladen (ohne Quellinformationen). "hallo welt.exe": "C:\Windows\SysWOW64\apphelp.dll" geladen, Symbole geladen (ohne Quellinformationen). SHIMVIEW: ShimInfo(Complete) "hallo welt.exe": "C:\Windows\SysWOW64\msvcr100d.dll" geladen, Symbole wurden geladen. Das Programm "[6888] hallo welt.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.vielleicht kann mir wer helfen 
 
- 
					
					
					
					
 Dafür gibt es doch die Suchfunktion ... 
 
- 
					
					
					
					
 danke, hätt ich machen sollen, stimmt! problem ist aber noch immer da obwohl ich das jetzt so gemacht habe... :S 
 
- 
					
					
					
					
 Probiere doch zusätzlich zu #include stdio.h die Zeile #include stdiolib.h eingeben. Am Schluß des Programms gibst Du dann folgendes ein: system("Pause") 
 return 0:Mit stdiolib (in dem die Funktion system (Pause) enthalten ist wird die Konsole angewiesen offenzubleiben. Du kannst sie dann nach Aufforderung per Tastendruck beenden.. Wenn ich damit falsch liegen sollte - seht es mir nach, ich stehe auch erst am Anfang. Mit MS Visual C++ funktioniert das jedenfalls. Gruß Wolfgang 
 
- 
					
					
					
					
 Einfacher ist es den Debugger zu verwenden und einen Breakpoint auf dem return von main zu setzen. 
 Oder mit Strg+F5 das Programm ohne Debugger zu starten. Dann hält die Konsole von selbst an.Dieser System Pause Quatsch und getchar ist nicht nötig. 
 
- 
					
					
					
					
 Einfacher ist es den Debugger zu verwenden und einen Breakpoint auf dem return von main zu setzen. 
 Oder mit Strg+F5 das Programm ohne Debugger zu starten. Dann hält die Konsole von selbst an.Dieser System Pause Quatsch und getchar ist nicht nötig. 
 
- 
					
					
					
					
 Versuche folgendes: - Öffne Kommandozeile
- Finde Datei VSVARS32.BAT oder VCVARS32.BAT 1 in irgend einem "bin"-Verzeichnis
 von Deiner Visual Studio Version und rufe sie Auf (z. B. VCVARS32)
 HINT: Kopiere diese Batch-Datei in ein Verzeichnis, dass in Deinem
 Path vorkommt 
- Übersetze folgendes Programm (läuft bei mir einwandfrei) mit folgendem Befehl (direkt
 von der Kommandozeile aus:
 cl -EHsc programmname.cpp Wichtig: -EHsc muss exakt so eingegeben werden (Groß-/Kleinschreibung ist bei 
 Optionen signifikant) und auch die Dateiendung ".cpp" muss angegeben werden.
 "CL ... programmname" funktioniert nicht (Suffix wird beim CL-Kommando nicht
 automatisch ergänzt, der Compiler unterscheidet an der Endung ob es C oder C++
 Code ist). Bei den Befehlen (z. B. "cl") ist die Schreibweise dagegen egal, es ginge auch Cl.//#include "stdafx.h" // diese Include-Datei kenne ich nicht, // evtl. auch zwischen "<" ">" einschließen // N E I N : So wie jetzt (ohne obiges Include) wird das // Programm bei mir einwandfrei compiliert (VS 2005) // und korrekt ausgeführt // #include "iostream" // FALSCH(!) - Richtig: #include <iostream> // Es ist eine Standard-Header Datei(!) // Standard-Header-Dateien werden in "<...>" // eingeschlossen. WARNUNG: < iostream > ist // FALSCH (Leerzeichen sind bei den spitzen // Klammern signifikant(!). using namespace std; // Mag sein, das Microsoft das so möchte: // int _tmain(int argc, _TCHAR* argv[]) // { // IMHO schlechter Stil, Stroustrup schreibt die öffnente Klammer // // auf der selben Zeile, z. B. int main(int argc,char *argv[]) { // // ... sonst bekommt man einfach zu viele Zeilen. // ich würde folgendes verwenden: int main(int argc,char *argv[]) { // cout << "blabla"; // Hier würde ich: cout << "blabla" << endl; // verwenden, damit auch Newline geschrieben wird getchar(); // Wenn man es direkt von der Kommandozeile aus aufruft, kann man // sich diese Zeile auch sparen - beim Debugger ist sie evtl. nützlich return(0); }1): Ganz wichtig: Evtl läuft es trotzdem nicht, siehe hierzu meinen anderen Beitrag. p.s.: Die Option -EHsc ist nicht unbedingt notwendig, aber ohne "hagelt" es 
 jede Menge Warnungen.
 
- 
					
					
					
					
 Vielen Dank mit dem Tipp Strg+F5, habe das erst jetzt testen können. Gruß Wolfgang 
 
