# GTK unter Windows



## superharry (24. Januar 2006)

hallo,
wollt mal Probieren wie man mit GTK unter Windows Programmiert, da kommt aber ne Fehler meldung "Nichtaufgelöstes externes Symbol _gtk_main" heißt ja er weiß nich was das ist.
Ohne dem wird aber sicher nich gehen! 
wie kann ich meinem Visual C++ beibringen damit umzugehent
Die *.h files hab ich ja schon aber mit Libs hab ich noch nich gearbeitet!
oder geht das bloß mit Borland oder Linux, wolt nemlich ne Win Application bauen  
ich hab auch schon das GTK von sourcefroge.net geladen, installiert und bei MSVC regiestriert aber da geht nichts!!

edit: hab jetzt mal den cygwin installiert aber es passiert immernoch nich, dem is der GTK auch unbekannt!
was mach ich falsch

MFG Harry


----------



## deepthroat (25. Januar 2006)

Hi.

Hier findest du eine Anleitung zum Einrichten von Gtk+ mit VC++ (mußt ein bißchen runterscrollen).

Das Einfachste wäre vermutlich einfach Dev-C++ zu installieren und dann über den Package-Manager von Dev-C++ das Gtk+ Development Pack zu installieren.

Gruß


----------



## superharry (25. Januar 2006)

deepthroat hat gesagt.:
			
		

> Hi.
> 
> Hier findest du eine Anleitung zum Einrichten von Gtk+ mit VC++ (mußt ein bißchen runterscrollen).
> 
> ...


so hab jetzt die ganze zeit rumprobiert im MSVS und das so gemacht wies da steht aber sagt mir immernoch das er irgentwelche header nich findet!   
im PacketManager von Dev C++ gibts nichts met GTK oder der gleichen, muss ich das per Online Update laden?
oder wo bekomm ich die passente zip her?

Edit: die Zips hab ich jetzt, bloß wenn ich atk, cairo,glib,gtk,pango installiere bringt der dev auch wieder fehler von wegen nich gefunde!  

```
30 D:\Programme\Dev-Cpp\include\gtk-2.0\gdk\gdkcairo.h:23,               from D:\Programme\Dev-Cpp\include\gtk-2.0\gdk\gdk.h
```
ich hab aber gtk-2.0 als include ordner angeben, also muss er ja auch gdkcairo.h finden wenn mit 

```
#include <gdk/gdkcairo.h>
```


----------



## deepthroat (25. Januar 2006)

Also ich weiß ja jetzt nicht was du runtergeladen hast, aber die Include Verzeichnisse kannst du in Dev-C++ ganz einfach in den Projekteinstellungen, Register Verzeichnisse, Unterregister Include Verzeichnisse einstellen.

Allerdings hatte ich mich mit dem Package Manager geirrt, die Funktion heißt "Auf Werkzeuge/Updates prüfen" im Werkzeuge Menü. Da solltest du einfach draufklicken, in dem Dialog dann den devpak.org Server auswählen und auf "Check for updates". In "Groups" kannst du dann GTK auswählen um die Liste etwas zu verkleinern. Dann mußt du erstmal atk, pango und glib installieren, und danach gtk+.

Damit die Gtk Programme laufen ist es nötig das du die Gtk+ Runtime von hier installierst http://gimp-win.sourceforge.net/stable.html 

Wenn du die DevPaks erfolgreich installiert hast, dann sollte auch unter Datei->Neu->Projekt ein Gtk+ Projekt auftauchen welches du auswählen kannst - dann wird gleich ein Grundgerüst eines Gtk+ Programms erstellt und es sollte ohne weitere Einstellungen kompiliert und auch ausgeführt werden. (du mußt nur darauf achten bei Neu->Projekt ein "C-Projekt" zu kreieren, beim C++-Projekt klappt es nicht ohne weiteres.)

Gruß


----------



## superharry (25. Januar 2006)

deepthroat hat gesagt.:
			
		

> (du mußt nur darauf achten bei Neu->Projekt ein "C-Projekt" zu kreieren, beim C++-Projekt klappt es nicht ohne weiteres.)


das war mein fehler!   
also kann ich auch nich die dinge Verwenden die ich im C++ nehmen konnte?
gibts eigentlich au nen Methode bzw. etwas zu programmieren, ohne eine Runtime dazu zu installieren?
also die schon im Win drin ist!
bitte sagt jetzt nicht Konsole, das weiß ich selbst   
aber erstmal funtzt alles soweit, nur doof wegen der Runtime!


----------



## deepthroat (26. Januar 2006)

superharry hat gesagt.:
			
		

> das war mein fehler!
> also kann ich auch nich die dinge Verwenden die ich im C++ nehmen konnte?


Ja, ich hab den Fehler zuerst auch gemacht und die ganzen Pfade (und Parameter) per Hand eingetragen... 
Allerdings kannst du ganz einfach unter den Projekt-Optionen, Parameter Register die zusätzlichen Kommandozeilen Optionen für den C Compiler einfach kopieren und in die mittlere Textbox für den C++ Compiler einfügen. Dann mußt du C++ Code schreiben da die Dateien dann alle vom C++ Compiler kompiliert werden. Wenn du das auf Dauer so ändern willst, kannst du die Datei Dev-Cpp\Templates\<nr>-gtkapp.template anpassen - du mußt nur die Zeile wo "Compiler=-I..." steht kopieren, nochmal einfügen und die Zeile ändern, das dann "CppCompiler=-I..." drin steht.



			
				superharry hat gesagt.:
			
		

> gibts eigentlich au nen Methode bzw. etwas zu programmieren, ohne eine Runtime dazu zu installieren? also die schon im Win drin ist!


Du benötigst immer die DLLs von Gtk+ wenn du ein Gtk+ Programm ausführen willst - programmieren könntest du auch ohne die DLLs, allerdings könntest du dein Programm nicht testen - das wäre dann sowas wie eine Cleanroom Programmierung.

Natürlich kannst du auch einfach die native WinAPI benutzen um Windows Programme zu schreiben. Das ist allerdings nicht so einfach wie Gtk+ Programme zu erstellen und das Programm läuft natürlich auch nur unter Windows Systemen. (ich weiß ja nicht ob das für dich wichtig ist). Übrigens ist bei dem Gtk+ DevPak ein nettes Beispielprogramm dabei - im Dev-Cpp\bin Verzeichnis "gtk-demo.exe".

Gruß


----------



## superharry (26. Januar 2006)

deepthroat hat gesagt.:
			
		

> Allerdings kannst du ganz einfach unter den Projekt-Optionen, Parameter Register die zusätzlichen Kommandozeilen Optionen für den C Compiler einfach kopieren und in die mittlere Textbox für den C++ Compiler einfügen. Dann mußt du C++ Code schreiben da die Dateien dann alle vom C++ Compiler kompiliert werden. Wenn du das auf Dauer so ändern willst, kannst du die Datei Dev-Cpp\Templates\<nr>-gtkapp.template anpassen - du mußt nur die Zeile wo "Compiler=-I..." steht kopieren, nochmal einfügen und die Zeile ändern, das dann "CppCompiler=-I..." drin steht.


mh ich konnte den Dev noch nie wirklich leider, der bringt mehr fehlermeldungen wo ich mir sagen: "Wo ist da was Falsch?"



> Du benötigst immer die DLLs von Gtk+ wenn du ein Gtk+ Programm ausführen willst - programmieren könntest du auch ohne die DLLs, allerdings könntest du dein Programm nicht testen - das wäre dann sowas wie eine Cleanroom Programmierung.
> 
> Natürlich kannst du auch einfach die native WinAPI benutzen um Windows Programme zu schreiben. Das ist allerdings nicht so einfach wie Gtk+ Programme zu erstellen und das Programm läuft natürlich auch nur unter Windows Systemen. (ich weiß ja nicht ob das für dich wichtig ist). Übrigens ist bei dem Gtk+ DevPak ein nettes Beispielprogramm dabei - im Dev-Cpp\bin Verzeichnis "gtk-demo.exe".


das Programm, wolt ich eigentlich zu meiner Bewerbung dazu legen, aber als Personalchef hast ja nich wirklich lust erstnoch ne Runtime zu installieren!
OpenGL kann man schlecht die Win Buttons etc. bauen und man braucht sicher auch DirectX oder sowas.
MFC Runtimes hat auch niemand installiert, API kann ich net und für .NET brauchst auch wieder das Framework
JAVA hat auch nich jeder drauf!   
was sollte ich da nehmen
Konsole is bischen einfarbisch


----------



## MCoder (26. Januar 2006)

superharry hat gesagt.:
			
		

> MFC Runtimes hat auch niemand installiert


Zumindest bei MFC-Projekten kann man die Librarys auch statisch zulinken (läßt sich in den Projekteinstellungen festlegen), so dass wirklich nur die (nun etwas größere) EXE-Datei benötigt wird.

Gruß
MCoder


----------



## superharry (26. Januar 2006)

MCoder hat gesagt.:
			
		

> Zumindest bei MFC-Projekten kann man die Librarys auch statisch zulinken (läßt sich in den Projekteinstellungen festlegen), so dass wirklich nur die (nun etwas größere) EXE-Datei benötigt wird.
> 
> Gruß
> MCoder


Aaahhh das klingt gut, 
Projekt-> Einstellungen -> Microsoft Foundation Classes -> MFC in einer Statischen Bibliotek verwenden ?
ich den mal das wirds sein weil das sogar auffen Linux cedega läuft und aus ner 124 Kb exe ne 2 MB exe gemacht hat!
oder gibts da noch mehr


----------



## MCoder (27. Januar 2006)

superharry hat gesagt.:
			
		

> Projekt-> Einstellungen -> Microsoft Foundation Classes -> MFC in einer Statischen Bibliotek verwenden ?


Das ist genau die Einstellung, die ich meine. Mehr brauchst du nicht zu machen.


----------



## superharry (27. Januar 2006)

gut da hab ich ja fast alles den rest denk ich find ich in der MSDN Library!  ;-)


----------

