bonjour,
j'ai un léger souci lié à l'encodage de caractères sous GTK+
typiquement :
est fonctionnel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //ErrorStr est un char* alloué dans la heap plus tôt dans le même fichier source gchar* labelTmp = g_locale_to_utf8(ErrorStr, -1, NULL, NULL, NULL); GtkWidget* ht_ckbox = gtk_check_button_new_with_label(labelTmp); g_free(labelTmp);
l'affichage dans mon interface en GTK+ marche impec
maintenant j'ai compliqué les choses.
j'ai créé une lib dans laquelle j'ai écris quelque phrases accentuées (3 ou 4 messages d'erreur écrient en français)
j'ai build cette lib, et je la link avec mon application
sous Windows, aucun soucis, le label apparait comme il faut
sous Linux, aucun texte n'apparait
il se trouve que la fonction "g_locale_to_utf8" me retourne un pointeur NULL
pour transposer sur le code ci-dessus
si "ErrorStr" est déclarée dans la heap dans une Lib (.lib sous win | .a sous nux)
l'encodage en utf8 retournera NULL
si "ErrorStr" est déclarée dans la même application (que ce soit dans le même bloc de code ou en tant qu'attribut de la class appelante)
l'encodage en utf8 fonctionnera
y'a t-il une option de compilation a balancer au linker pour ne plus avoir ce problème, y'a t-il une raison (surement ^_^) à ce souci ?
merci
Partager