You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Sunday, June 14th 2009, 8:30pm

Kommandozeile verstecken

Kurze frage:

Ich benutzte Eclipse mit CDT, also ich programmiere C++
von meinem alten Dev-C++ weiß ich, dass man irgentwie dem programm sagen kann, das er kein fenster für das programm anzeigen soll (is für grafische programme ja auch dumm)
Nur ich find keine option dafür, und in der dokumentation für linker und compiler finde ich auch keine informationen dafür :(

wie geht sowas?

2

Sunday, June 14th 2009, 9:08pm

Pocky ich bin ein wenig verwirrt.
Du schreibst Kommandozeile verstecken und was von kein Fenster für das Programm.

Willst du nun kein Fenster und keine Kommandozeile darstellen, dann schalte den Monitor doch aus oder fahre deine PC herunter ;)

Aber ich rate mal das du das nicht willst, sondern du möchtest ein Fenster ohne Rahmen darstellen oder?
Wenn das richtig geraten war schreib mal für welches Betriebssystem das sein soll.

Der alte Einstein sagte mal sinngemäß:
Wenn man die Frage sorgfältig formuliert liegt die Lösung nicht mehr fern ;)

MfG bcc-fan

3

Sunday, June 14th 2009, 9:14pm

ok

war vielleicht ein bisschel schnell mit schreiben XD

Im moment brauch ich das ganz für windows XP

nein, wenn ich ein normales programm (SDL) schreibe, hab ich doch dann mein SDL-Fenster, und dem ich grafik darstellen kann, und ein tolles kleines fenster, welches man auch bekommt, wenn man die cmd.exe startet.
Und genau das Fenster möchte ich weg haben, aber ich hab keine ahnung wie ich das anstellen soll...

4

Sunday, June 14th 2009, 9:35pm

Ah, das Kommadozeilenfenster soll geschlossen werden -
gibt es Probleme, wenn du mit der Maus auf das Schließen-Symbol klickst?

Oder möchtest du noch was anderes?

MfG bcc-fan

5

Sunday, June 14th 2009, 9:38pm

es soll von anfang an nicht auftauchen ^^
wie gesagt, ich habe mein anderes fenster, und dann brauche ich das cmd-fenster nicht

6

Sunday, June 14th 2009, 9:50pm

Aha nun kommen wir der Sache langsam näher - nächster Versuch:
Du startest Eclipse mit CDT und beim Start gehen mehrere Fenster auf unter anderem auch das Kommandozeilenfenster.
Ich hab noch nix mit Eclipse gemacht - die Suchmaschine findet folgendes:
Im CDT bei den Linker-Optionen ("Linker flags") muss man "-mwindows" eintragen, wenn als Linker der g++ eingestellt ist...

War es das was du suchst?

MfG bcc-fan

7

Monday, June 15th 2009, 10:33pm

Nein, das ist nicht was er sucht. Wenn er Programme mit der dem Eclipse schreibt, haben diese immer standardmäßig ein Fenster für stdio. Leider kenn ich Eclipse nur für Java, aber bei den meisten C++-IDE's ist es eine Projekteinstellung ob das Fenster angezeigt werden soll oder nicht.

8

Tuesday, June 16th 2009, 10:31pm

Sorry, aber das ist falsch.
Man muss einfach nur eine Windows-Anwendung erstellen und nicht eine Konsolenanwendung.
Dazu ist wie schon gesagt, das flag -mwindows nötig und folgende Funktion:

http://msdn.microsoft.com/en-us/library/ms633559(VS.85).aspx

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
extern "C"
int WINAPI WinMain(      
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow
)
{
    return TRUE;
}

Und diese Funktion ersetzt die "int main()". extern "C" ist mit dem g++ zwingend nötig, da der Name sonst nicht aufgelöst wird wegen Namemangling.
mfg

9

Wednesday, June 17th 2009, 6:14pm

Sorry, aber das ist falsch.
Man muss einfach nur eine Windows-Anwendung erstellen und nicht eine Konsolenanwendung.
Dazu ist wie schon gesagt, das flag -mwindows nötig und folgende Funktion:

http://msdn.microsoft.com/en-us/library/ms633559(VS.85).aspx

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
extern "C"
int WINAPI WinMain(      
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow
)
{
    return TRUE;
}

Und diese Funktion ersetzt die "int main()". extern "C" ist mit dem g++ zwingend nötig, da der Name sonst nicht aufgelöst wird wegen Namemangling.
mfg

Compilerflags sind Projekteinstellungen. Und was glaubst du macht man, indem man "einfach nur eine Windows-Anwendung erstellt". Man legt Projekteinstellungen fest. Ist wie gesagt in den IDEs die ich kenne eigentlich so. Ob main/WinMain ist übrigens soweit ich weiß nur eine Namenskonvention, theoretisch könnte man auch einen anderen Methodennamen als Einstiegspunkt markieren. Ich weiß aber nicht ob alle Compiler einem einen anderen Namen erlauben.

Similar threads

Social bookmarks