Console und WinForm?

Clund

(aka Cpp-Freak)
Moin,
also ich hab folgende Frage:
kann man in ein und dem selben Programm ein Konsolenfenster und WinFormFenster anzeigen lassen? Also in der Konsole sollen die Log's angezeigt werden, das Programm soll mit dem Winformfenster gesteuert werden.
Cpp-Freak
 

sheel

I love Asm
Hi

Mit AllocConsole etc kannst du zur GUI dazu eine Konsole anlegen.
Beispiele gibts in der MSDN auch.

Und Winforms sind KEIN C/C++.

Gruß
 

Clund

(aka Cpp-Freak)
Dann mein ich eben "Windows Form Designer"
gut, danke für den Link, aber wie geb ich dann was in der Konsole aus?
(Sorry, aber ich bin nicht gut in Englisch)
Cpp-Freak
 

sheel

I love Asm
Auch "Windows Form Designer" ist kein C/C++.

Und ich schreib ein Beispiel.

edit;
Fehlerprüfung wäre noch gut.
C++:
#include<stdio.h>
#include<windows.h>
#include<fcntl.h>
#include<io.h>

int __stdcall WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
	AllocConsole();
	*stdout = *_fdopen(_open_osfhandle((long) GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT), "w");
 
	printf("aaa");

	FreeConsole();
	return 0;
}

Gruß
 
Zuletzt bearbeitet:

sheel

I love Asm
Wer sagt denn, dass du das kannst?
Das, was du hast, ist C++/CLI.
Hat zwar einen ähnlichen Namen und kann mit C/C++ gemischt werden,
ist aber trotzdem was anderes.
Hat mit C++ genau soviel gemeinsam wie C++ mit C#.
 

sheel

I love Asm
Verstehst du schon richtig.
Ursprünglich war C++/CLI als Sprache geplant, die die C#-Klassen, -GarbageCollector etc verwendet, aber C++-Schreibweise hat (wie ein if ausschaut, mit Klammersetzung und so; wie Klassendefinitionen geschrieben werden etc...).

Der Punkt mit C#-Klassen wurde geschafft, die Sache mit C++-Schreibweise nicht so wirklich.
Die Syntax ist jetzt kein C# (dann wäre es ja komplett gleich wie C#) und auch kein richtiges C++, sondern was neues eigenes. Erkennbar vor allem an "gcnew", "^" und "ref" im Code.

Was bei C++/CLI aber möglich ist: Man kann es mit normalem C++ im gleichen Programm mischen.
Deshalb heißt es in VisualStudio auch nur "C++".

Wenn du den CLI-Teil nicht verwenden willst kannst du problemlos ein normales C/C++-Programm reinschreiben. Wenn du die C#-(.NET)-Klassen aber verwendest kommt der Compiler damit auch klar.

Die Winforms sind dabei eben aus C#/.NET genommen.

Gruß