Pb GTK+ [execution]

Pb GTK+ [execution] - C++ - Programmation

Marsh Posté le 06-06-2005 à 19:31:37    

Hello all,
J'ai installé les includes & lib & bin dans VC++, je peux compiler sans problème, aucune erreur ou warning, cependant lorsque j'execute mon code, j'ai une pop-up qui s'affiche devant moi affichant ça :
 

Citation :

** ERROR **: file shape.c: line 75 (pango_shape): assertation failed: (glyphs->num_glyphs > 0)
aborting...


 
Et il y a dans la fenêtre DOS .

Citation :

**main.exe.2872: WARNING**: No builtin or dinamycally loaded modules were found. Pango will not work correctly. This probably means there was a error in the creation of: C:/program files/Microsoft Visual Studio/VC98/etc/pango/pango.modules
You may be able to recreate this file by running pango-querymodules.
 
main.exe:2872: Glib-GObject-CRITICAL **: file gobject.c line 1561 g_object_ref assertion: G_IS_OBJECT object failed
 
main.exe:2872: CRITICAL **: file pango-engine.c line 68 _pango_engine_shape_shape: assertion PANGO_IS_FONT font failed


 
Je pense aue le code est bon mais je le met quand meme :

Citation :

#include <iostream>
#include <stdlib.h>
#include <gtk/gtk.h>
 
#define WELCOME "Welcome to TIM ! (v.0.1)"
 
 
using namespace std;
 
 
void OnDestroy(GtkWidget*, gpointer);
 
int main(int argc, char *argv[])
{
   GtkWidget *pWindow, *pLabel;
 
   gtk_init(&argc, &argv);
   
   pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);  
   pLabel = gtk_label_new(WELCOME);
 
   gtk_window_set_title(GTK_WINDOW(pWindow), "Taron Instant Messenger - TIM" );
 
   g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(OnDestroy), 0);
   gtk_window_set_position(GTK_WINDOW(pWindow), GTK_WIN_POS_NONE);
 
   gtk_window_set_default_size(GTK_WINDOW(pWindow), 285, 300);
   gtk_container_add(GTK_CONTAINER(pWindow), pLabel);
 
   gtk_widget_show_all(pWindow);
   gtk_main();
 
   return EXIT_SUCCESS;
}
 
 
void OnDestroy(GtkWidget *pWidget, gpointer pData)
{
    gtk_main_quit();
}


 
Siouplait un petit peu d aide ca fait pas mal de temps aue j essaye #include <iostream>

Reply

Marsh Posté le 06-06-2005 à 19:31:37   

Reply

Marsh Posté le 22-09-2005 à 17:56:19    

Effectivement, GTK est un peu pénible a mettre en oeuvre, surtout a cause de la librairie Pango qui est configurée bizaremment.
La résolution du probleme est simple en soi, mais faut la trouver!!!  :pfff:  
 
tout commence a partir de l emplacement de la dll de pango (par contre je ne sais pas si c est libpangowin32-1.0-0.dll, libpangocairo-1.0-0.dll ou libpango-1.0-0.dll, mais de toute facon il faut les 3). Pango va chercher un fichier qui s appelle pango.modules qui contient l adresse des dll des polices de caractere. Et cette adresse est FORCEMENT: <emplacement de la dll>\etc\pango. Donc premiere opération:
*Creer une arborescence qui correspond a ca ! (a savoir un dossier "etc" puis un dossier "pango" ). Puis copier le fichier pango.modules dans le dossier pango ( il y a aussi un fichier pango.aliases a copier, mais apparemment ca marche sans chez moi). Manitenant a l execution du programme, c est plus la meme erreur qui arrive. Cette nouvelle erreur viens du fait que pango ne peut pas ouvrir les dll dont l adresse est mentionnée dans pango.modules . Chez moi, les adresses ressemblent a ca:
"c:/devel/target/pango-1.8.2/lib/pango/1.4.0/modules/pango-arabic-fc.dll"
Deux solutions:
*la premiere, un peu gore: creer une arborescence qui correspond a ca puis copier les dlls dedans (la liste de toutes les dlls est dans pango.modules)
*la deuxieme, nettement plus propre: modifier ces adresses pour que ca soit le dossier choisit. Moi ce que j ai fait: j ai mis toutes les dlls de police dans le meme dossier que pango.modules. Ensuite j ai changé les adresses de ce dernier fichier en les suivantes:
"etc/pango/pango-arabic-fc.dll" ( cest un exemple, y a 19 adresses chez moi)
Dans ce cas, la dlls de pango va chercher dans <emplacement de la dll>/etc/modules. C est plus propre, mais c est quand meme pas super rigoureux.
Le must c est encore de mettre les dll dans la racine du programme, et tout le reste dans <emplacement de la dll>/etc/module. Comme ca, on peut faire marcher le prog sur un pc qui n a pas pango d installé.
 
voilaaaaaaaaaaaaaaaaaaaaaa
 :hello:  
 
 

Reply

Marsh Posté le 22-09-2005 à 17:58:59    

nei a écrit :


"c:/devel/target/pango-1.8.2/lib/pango/1.4.0/modules/pango-arabic-fc.dll"
 


 
 
vous aurez tous compris que le smiley n a rien a faire la  :pt1cable:  
ca devrait etre:
"c : / devel/target/pango-1.8.2/lib/pango/1.4.0/modules/pango-arabic-fc.dll"
sans les espaces
 
cordialement notre  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed