Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

gtk und win7

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hellobello



Anmeldungsdatum: 21.09.2012
Beiträge: 1

BeitragVerfasst am: 21.09.2012, 00:12    Titel: gtk und win7 Antworten mit Zitat

Hallo, ich versuche gerade meine ersten Schritte mit GUI, habe jetzt ein paar gtk tutors probiert. Aber der compi meckert immer rum dass er diese, und jene .dll nicht findet.

gtk+ habe ich wie im beiliegenden readme gespeichert (unter c:\opt\gtk) und dann " pkg-config --cflags gtk+-2.0" laufen lassen. Aber es geht nicht.

Die Beispielprogramme laufen nur, wenn ich die entsprechenden dlls in den gleichen Ordner wie den Quellcode kopiere.

Ich gehe mal davon aus, dass ich die dlls manuell in der Registry registrieren muss, aber wie?

Dann kommt bei vielen Beispielen noch der Fehler dass (null).dll nicht gefunden werden kann. Was soll das denn sein?

GTK möchte ich nehmen, damit die Programme leichter auch auf LINUX portiert werden können. Auch wenn die Win-API leichter sein sollte.

Grüßle, der hello
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5866
Wohnort: Deutschland

BeitragVerfasst am: 21.09.2012, 06:57    Titel: Antworten mit Zitat

Hallo und willkommen im Forum!

Ja, es ist üblich, dass GTK+ Anwendungen die benötigten DLLs im Programmverzeichnis mitbringen. So wird auch sichergestellt, dass die passende Version der Libs vorhanden ist und der User nicht erst irgendwelche DLLs zusammensuchen muss, wenn man seine Programme distribuiert. lächeln

Zitat:
GTK möchte ich nehmen, damit die Programme leichter auch auf LINUX portiert werden können.

Meines Erachtens eine gute Wahl. zwinkern

Zitat:
Auch wenn die Win-API leichter sein sollte.

Wir haben zu beiden Methoden Tutorials im FreeBASIC-Portal. Zum Thema WinAPI ist "Lutz Ifers WinAPI Tutorial" empfehlenswert. Allerdings finde ich GTK viel angenehmer als GUIs mit "WinAPI pur" zu programmieren. zwinkern

Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 06.10.2012, 21:35    Titel: Antworten mit Zitat

Hallo!

Bisschen späte Antwort. Und auch nur ein Hint - ich habe noch nie mit Win7 gearbeitet. (Bis jetzt tut XP seinen Dienst...)

In
http://www.askos.de/tutorial/kap315.htm#kap3

stehen ein paar knappe Hinweise, wie das mit den Pfaden funktioniert. Registry-Einträge brauchst du keinesfalls. Lediglich die Systemvariablen INCLUDE und LIB müssen richtig gesetzt sein.

Allgemein Win-API oder GTK: Ich glaube, das sind auch ein wenig Äpfel und Birnen. Win-API ist ziemlich low level und keine Komponentenbibliothek. Siehe auch
http://www.askos.de/tutorial/kap32.htm

GTK ist eher mit einer Windows-Komponentenbibliothek wie VCL (Delphi) zu vergleichen. Nur dass solche Win-Only-Geschichten im Java/.NET/HTML5-Zeitalter keine grosse Rolle mehr spielen. Auch unter Windows benutzen z.B. C++-Programmierer heute zu 90% Qt als GUI-Framework.

VG!

Croco



[/url]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChrisB



Anmeldungsdatum: 16.02.2013
Beiträge: 1

BeitragVerfasst am: 16.02.2013, 20:26    Titel: Re: gtk und win7 Antworten mit Zitat

Hallo!

hellobello hat Folgendes geschrieben:
Dann kommt bei vielen Beispielen noch der Fehler dass (null).dll nicht gefunden werden kann.

Ich melde mich (nachträglich), da ich heute auf das gleiche Problem gestoßen bin. Vielleicht hilft die folgende Fehlerdoku anderen Nutzern, denen es ähnlich geht. Zum Thema: Ich hatte mich heute mit den Tutorials zu GTK+ auf freebasic-portal.de beschäftigt, allerdings kam bei allen Beispielen, die über ein leeres Fenster hinausgehen, nur folgende Fehlermeldung:

"Die Anwendung konnte nicht gestartet werden, weil (null).dll nicht gefunden wurde."

Das komplette Bundle zu GTK+ war natürlich installiert, auch die Systemvariable PATH wurde gemäß Readme gesetzt. Da aus der "kaputten" Fehlermeldung nicht ersichtlich ist, welche DLL nun tatsächlich fehlt, habe ich kurzerhand alle DLL-Dateien aus der GTK-Installation (und den darin befindlichen Unterordnern) in meinen aktuellen FreeBasic-Projektordner kopiert. Nur leider hat das an der Fehlermeldung auch nichts geändert.

Hier ein (bei mir nicht-funktionierendes) Beispiel:

Code:
' Bestandteile dieses FreeBasic-Testprogramms finden sich in Tutorials zu GTK+
' Mit GTK+ 2.24 und FreeBasic 0.24 unter WinXP SP 3 ergibt sich jedoch
' ein Programm-Abbruch und folgende Fehlermeldung:
'
' "Die Anwendung konnte nicht gestartet werden, weil (null).dll nicht gefunden wurde.
' Neuinstallation der Anwendung könnte das Problem beheben."

#include once "gtk/gtk.bi"

#define NULL 0

Dim As GtkWidget Ptr win
Dim As GtkWidget Ptr button1, button2

gtk_init(NULL, NULL)

win = gtk_window_new(GTK_WINDOW_TOPLEVEL)

gtk_window_set_title(GTK_WINDOW(win), "Test") ' -> (null).dll nicht gefunden

gtk_widget_set_size_request(win, 250, 150)
gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER) ' -> (null).dll nicht gefunden

button1 = gtk_button_new_with_label("Button 1")
button2 = gtk_button_new_with_label("Button 2")

Dim As GtkWidget Ptr vbox = gtk_vbox_new(FALSE, 0)

gtk_container_add(GTK_CONTAINER(vbox), button1) ' -> (null).dll nicht gefunden
gtk_container_add(GTK_CONTAINER(vbox), button2) ' -> (null).dll nicht gefunden
gtk_container_add(GTK_CONTAINER(win), vbox) ' -> (null).dll nicht gefunden

gtk_widget_show_all(win)

gtk_main()

End


Durch Herumprobieren konnte ich das (erste auftretende) Problem auf folgende Zeile eingrenzen:

Code:
gtk_window_set_title(GTK_WINDOW(win), "Test")


Ändert man das wie folgt ab, läuft das Programm zwar, führt aber zu einer Warnung:

Code:
gtk_window_set_title(win, "Test") ' -> Passing different pointer types, at parameter 1


Obiges Codebeispiel habe ich daher wie folgt abgeändert - nun läuft's ohne den "(null).dll"-Fehler. lächeln

Code:
#include once "gtk/gtk.bi"

' Auszug aus der "Object Hierarchy"
' +----GtkObject
'     +----GtkWidget
'         +----GtkContainer
'             +----GtkBin
'                 +----GtkWindow
'                     +----GtkDialog
'                     +----GtkAssistant
'                     +----GtkPlug
#define NULL 0

Dim As GtkWidget Ptr win
Dim As GtkWidget Ptr button1, button2

gtk_init(NULL, NULL)

win = gtk_window_new(GTK_WINDOW_TOPLEVEL)
gtk_window_set_title(Cast(GtkWindow Ptr, win), "Test")
gtk_widget_set_size_request(win, 250, 150)
gtk_window_set_position(Cast(GtkWindow Ptr, win), GTK_WIN_POS_CENTER)

button1 = gtk_button_new_with_label("Button 1")
button2 = gtk_button_new_with_label("Button 2")

Dim As GtkWidget Ptr vbox = gtk_vbox_new(FALSE, 0)

' void gtk_container_add(GtkContainer *container, GtkWidget *widget)
gtk_container_add(Cast(GtkContainer Ptr, vbox), button1)
gtk_container_add(Cast(GtkContainer Ptr, vbox), button2)
gtk_container_add(Cast(GtkContainer Ptr, win), vbox)

gtk_widget_show_all(win)

gtk_main()

END


Schöne Grüße,
Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ichhalt



Anmeldungsdatum: 26.01.2013
Beiträge: 39

BeitragVerfasst am: 19.02.2013, 07:46    Titel: Antworten mit Zitat

Das mit der null.dll kimmt davon das im FreeBasic/lib verzeichnis liegende dll.a dateien kaputt sind
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz