scanf blockiert Programmfluss nicht
- 
					
					
					
					
 Ich wollte neulich eins meiner Programme auf Windows portieren, jedoch ergab sich dabei das Problem, dass die Funktion scanf nicht den Programmfluss blockiert. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HANDLE thread; MSG msg; bool done=FALSE; setlocale (LC_CTYPE, "German"); AllocConsole(); printf("Bitte Anzahl der Dimensionen wählen: "); scanf("%i", &DIMENSION); init_hypercube();Auch wenn noch gar nichts eingegeben wurde springt das Programm, wenn man es mit Visual C++ 2008 kompiliert direkt zur Funktion init_hypercube. Wenn ich es jedoch mit der 2012er Version kompiliere funktioniert alles einwandfrei. Auch konnte ich nicht herausfinden, mit welchen Parametern ich das Programm mit dem C99-Standard kompiliere. Ich habe es jetzt einfach einmal als C++ Anwendung kompilieren lassen. Gruss rejak 
 
- 
					
					
					
					
 Okay printf und scanf funktionieren jetzt dank FreeConsole(); if (AllocConsole()) { freopen("CONIN$", "rb", stdin); freopen("CONOUT$", "wb", stdout); freopen("CONOUT$", "wb", stderr); }jedoch jetzt streikt setlocale (LC_CTYPE, "German");
 
- 
					
					
					
					
 Du solltest Dein Programm umstellen auf "Console"... und kein "Windows" Programm erstellen... Siehe "Linker|Subsystem: Console"... dann ist Dein zusätzlicher Code überflüssig... 
 
- 
					
					
					
					
 Nur wie erzeuge ich dann ein Fenster, ich brauche nämlich beides, die Kommandozeile zur Steuerung und das Fenster zur Ausgabe 
 
- 
					
					
					
					
 Genauso ... 
 
- 
					
					
					
					
 Durch die Einstellung zur Konsolen-Anwendung hast du deine Konsole und die Kommandozeile, lediglich den Instance handle musst du dir anders beschaffen: GetModuleHandle. 
 
- 
					
					
					
					
 Danke - Problem erfolgreich gelöst