ubuntuusers.de

gtk Programm mit MinGW: Dosfenster stört

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

ChriKle

Anmeldungsdatum:
7. Mai 2006

Beiträge: 341

In der Überschrift steht eigentlich schon meine Frage.
Wie schaffe ich es unter Windows ein gtk-Programm zu kompilieren, ohne dass beim starten sich immer eine Konsole (DOS-Fenster) öffnet?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Beim starten des Compilers?

Ich glaube seit WindowsXP gibt es kein DOS-Fenster mehr unter Windows - womöglich länger. Das ist eine Shell namens command.com oder com.(com|exe).

Oder sprichst Du davon ein Programm so zu kompilieren, daß man es starten kann, ohne daß sich eine Shell öffnet? Soll das was mit dem Kompilevorgang zu tun haben? Das kann ich mir nicht vorstellen.

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

user unknown schrieb:

Oder sprichst Du davon ein Programm so zu kompilieren, daß man es starten kann, ohne daß sich eine Shell öffnet? Soll das was mit dem Kompilevorgang zu tun haben? Das kann ich mir nicht vorstellen.

Unter Windows hat das sehr wohl etwas mit dem Kompilieren zu tun, da Windows zwischen Kommandozeilen-Programmen und GUI-Programmen unterscheidet, und je nach Typ des Programms vorher eine Konsole öffnet und einen anderen Eintrittspunkt aufruft. Unter Windows werden GUI-Programme nicht durch int main(void) gestartet, sondern durch eine andere Funktion (iirc winmain(TString cmdline), aber da bin ich mir nicht sicher). Deswegen kennt der msc++ ebenso wie der mingw-Compiler eine Option, um die Art des Programms anzugeben.

Das ist auch der Grund dafür, warum es unter Windows für die meisten Interpreter zwei verschiedene ausführbare Dateien gibt (vgl. python.exe und java.exe vs. pythonw.exe und javaw.exe).

ChriKle

(Themenstarter)

Anmeldungsdatum:
7. Mai 2006

Beiträge: 341

@Lunar: Genau das ist es was ich meine. Wenn das Programm gestartet wird, wird zusätzlich zum gtk Fenster ein command.com Fenster (?, wie auch immer das heisst) geöffnet.

Da ich eigentlich fast nur unter Linux unterwegs bin, kenne ich mich da leider nicht aus. Kann ich das verhindern, indem ich beim compilieren mingw einen bestimmten Parameter übergebe, oder muss ich die main in winmain (?) umbenennen, wenn ja wie genau?
Bei so Programmen wie gimp öffnet sich ja schließlich auch kein Terminalfenster, also muss das doch wohl irgendwie funktionieren!

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

-mwindows glaube ich.

ChriKle

(Themenstarter)

Anmeldungsdatum:
7. Mai 2006

Beiträge: 341

Danke!

Hat funktioniert!

Grüße Chrikle!

Antworten |