# Problem mit Visual C++ 2010 Express



## KILLTHIS (17. Dezember 2011)

Aloha Leute!

Ich habe heute endlich mein Buch für C++-Programmierung erhalten und dachte mir, ich lade mir direkt die neueste Variante von Microsoft Visual C++ herunter, anstelle der alten Version, die auf der beiliegenden CD dabei ist. Jetzt habe ich allerdings ein Problem:

Ich habe eine Win32-Konsolenanwendung programmiert und wenn ich ohne Debugging starte, so läuft alles wunderbar und ich kriege auch genau das Resultat, das ich haben soll. Wenn ich es allerdings per Debugging starte, kriege ich folgende Meldung:



> "Listing_1.exe": "E:\EigeneProgramme\Listing_1\Debug\Listing_1.exe" geladen, Symbole wurden geladen.
> "Listing_1.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find or open the PDB file
> "Listing_1.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file
> "Listing_1.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot find or open the PDB file
> ...



Ich sehe jetzt zwar das Commando-Fenster aufgehen, allerdings schließt es sich direkt wieder - dabei soll es ja eigentlich auf eine Eingabe von mir warten, ehe es sich schließt.

Ich weiß, dass bei der Ausgabe von "0" alles gut sein soll - es geht ja auch etwas raus. Ich habe schon mehrere Seiten (leider alle nur auf englisch) abgeklappert, aber ich verstehe nicht, wieso das Programm nicht läuft, wenn ich es erst debuggen lasse. Der Quellcode wird mir ohne Fehler angezeigt, weshalb ich ziemlich ratlos bin.

Hier noch der Code:


```
// C++ für Spieleprogrammierer
// Listing 1.1
// Es wird ein Begrüßungstext ausgegeben
//
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
	cout << "Hier kommt die Konkurrenz!\n";
	return 0;
}
```

Ich danke im Voraus.

MfG

KILLTHIS


----------



## bingo88 (17. Dezember 2011)

Bei deinem geposteten Code wartet der nirgendswo. Wenn du ohne Debugging startest (Strg + F5) bleibt das Fenster offen, weil der einen zusätzlichen Pause-Aufruf macht. Beim normalen Debugging passiert das nicht (nur F5). Setze mal bitte einen Breakpoint auf "return 0;", dann müsstest du das Fenster sehen können. Wenn du nichts debuggen willst (sprich keinen Breakpoint gesetzt hast), reicht es eigentlich mit Strg + F5 zu starten.


----------



## KILLTHIS (17. Dezember 2011)

Äh... magst du mir dafür ein Beispiel geben? Ich bin heute ganz frisch in die Materie eingestiegen und weiß leider noch nicht, was breakpoints sind, oder wie man diese setzt... :S

Edit: Ich glaube, ich hab's geschafft. Ein anderer User hat mir empfohlen,


```
std::cin.get();
```

noch vor return einzufügen - und siehe da, es funktioniert - hat es auch vorher, aber dem Programm wurde nicht gesagt, dass es auf eine Eingabe des Users warten soll. Danke dir trotzdem!


----------



## bingo88 (17. Dezember 2011)

Breakpoint einfügen: An den Anfang der Zeile Doppelklicken. Gibt dafür aber auch nen Shortcut, den hab ich atm aber leider nicht im Kopf.
Wie gesagt, zusätzlichen Code einfügen, um die Konsole offen zu halten, ist eigentlich der völlig falsche Ansatz.

Edit: Zu den Meldungen, die du am Anfang gepostet hast: Die kannst du vorerst ignorieren. Das sind nur die Dateien, die der Debugger zum Auflösen der Windows-internen Funktionsnamen benötigt. Mit denen wirst du nur zu tun haben, wenn du intensiver Debugging betreiben willst


----------



## Skysnake (20. Dezember 2011)

Jup, bingo88 hats ja schön erklärt.

Das Programm rattert halt einfach durch, und scließt dann sobald es bei return 0 ankommt sofort das Fenster. Wenn du per cmd das Programm startest ist das wenn ich mich recht erinnere aber nicht so. Müsstest du mal testen.

Ansonsten halt mal ein Linux installieren, entweder als VM oder eben als zweites OS, da wirste dann von so etwas auch verschont. 

Tu dir auch bitte nicht gleich VS an. Ich hab auch so angefangen, und habs später teilweise BITTER bereut, weil VS VIELES! verträgt und gerade biegt, was dir bei jedem anderen normalen Compiler knadenlos Fehler liefert. Ist für später ganz nett, weil man nicht auf alles achten muss, aber wenn man später mal unter Linux proggen muss, dann wirste wahnsinnig, weil sich so viele kleine Fehler bei einem eingeschlichen haben....

Ich kann daher nur dazu raten, am Anfang auf eine IDE zu verzichten.


----------



## Zappzarrap (20. Dezember 2011)

Dafür brauchst du sogar noch nicht mal Linux, du kannst einen Editor (notepad++)
und cygwin installieren - das ist eine Linux Konsole. Da dann bei der Installaition 
gcc/g++ mitinstallieren und proggen wirklich von der Pike auf lernen  

Kann mich Sky nur anschliessen, ne IDE brauchste am Anfabg nicht...


----------



## Skysnake (20. Dezember 2011)

Klar geht das auch, aber ist doch ganz praktisch ein Linux da zu haben oder? 

Zumal es echt schnell installiert ist bei Ubuntu. Boot-CD brennen und dann ca ne halbe Stunde, dann wars das auch.


----------



## Zappzarrap (20. Dezember 2011)

Das in jedem Falle, nur manche meiden Linux wie...erm...keine Ahnung,
wollen es eben nicht installieren, so kann man denen die Einstiegshürde
nehmen


----------



## Skysnake (20. Dezember 2011)

Anja, aber früher oder später hat man damit zu tun und lieber früher als später. Ich hab mich 2Jahre nundamit rumgeschlagen im Studium u d bin jetzt recht fit i  Umgang, lern aber immer noch dazu, und das wird wohl so bleiben.


----------



## thysol (20. Dezember 2011)

Skysnake schrieb:


> Ansonsten halt mal ein Linux installieren, entweder als VM oder eben als zweites OS, da wirste dann von so etwas auch verschont.



Dem ist nichts hinbeizufuegen.



Skysnake schrieb:


> Tu dir auch bitte nicht gleich VS an. Ich hab auch so angefangen, und habs später teilweise BITTER bereut, weil VS VIELES! verträgt und gerade biegt, was dir bei jedem anderen normalen Compiler knadenlos Fehler liefert. Ist für später ganz nett, weil man nicht auf alles achten muss, aber wenn man später mal unter Linux proggen muss, dann wirste wahnsinnig, weil sich so viele kleine Fehler bei einem eingeschlichen haben....


 
Dem kann ich nur teilweise zustimmen. Visual Studio ist naemlich super was code "highlighting" betrifft. Finde das macht keine andere IDE besser. Aber ansonsten hast du Recht. Kompilieren tue ich auch fast ausschliesslich mit dem gcc compiler unter Linux.



Skysnake schrieb:


> Ich kann daher nur dazu raten, am Anfang auf eine IDE zu verzichten.


 
Jo, ist auch ne Moeglichkeit. Soweit ich weiss highlighted der Standard Text-Editor unter Linux sowieso Code in verschiedenen Farben wenn die Datei in.c oder.cpp oder so endet. Ist ganz praktisch wenn mann nur mit gcc im Terminal und einen Texteditor arbeitet.



Zappzarrap schrieb:


> Das in jedem Falle, nur manche meiden Linux wie...erm...keine Ahnung,
> wollen es eben nicht installieren, so kann man denen die Einstiegshürde
> nehmen


 
Mit Linux kann mann vieles mehr, besser und einfacher als mit Windows machen. Kurz, wenn mann programmieren will ist Linux eigentlich das viel bessere OS. Linux ist auch generell fuehrend was Implementierungen von neuen Technologien betrifft.


----------



## Zappzarrap (20. Dezember 2011)

Mir brauchst du das nicht sagen - ich programmiere fast auschlieslich 
unter Linux  Und wenn man sich reingefuchst hat sieht man auch
ein das es *eigentlich* das bessere System ist. Wenn man unter Linux
zocken könnte und alle Programme (C4D, Creative Suite etc.) laufen
würden, bräuchte ich kein Windows mehr...


----------

