wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 4
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Compilation - Installation - Réglages IDE
» Compilation wxwidgets 2.9.5 Unicode
Conversation : Compilation wxwidgets 2.9.5 Unicode
13-09-2013 17:16:05  Compilation wxwidgets 2.9.5 Unicode #1
antoine163 (Membre)
Inscrit le : 09-07-2010
Messages: 10
Snippets: 1
Tutoriels: 0
Hors ligne
Bonjour à tous,

Je suis en train d'écrire une application, mais j'ai un problème d'encodage ou Unicode je n'ai pas trop.
Je pense que cela vient de la compilation des libs (je n'en suis pas sur).

En fait, sous Linux je n'ai pas de problème.
Par exemple avec ce code :

Code wxWidgets:

wxMessageBox("Salut à toi!");

Le "à" s'affiche correctement.
Et sous Windows le "à" s'affiche avec des caractères bizarres.

Par compte (toujours sous Windows) avec ce code :

Code wxWidgets:

wxString tmp("Salut à toi!");
wxMessageBox(wxString::FromUTF8(tmp));

Cela s'affiche correctement.

Est-ce que quelqu'un vois le problème ?
En sachant que je ne connais pas vraiment les options de compilation de wxWidgets sous linux (Récupèrent dans les dépôts).
Par compte sous Windows, j'ai utilisé cette ligne de commande pour compiler les libs

Code:

mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release VENDOR=win32

Je ne sais pas si cela vient de la compilation de wxWidgets, mais je pense qu'il me manque une option à rajouter quelque part ...

Merci

+
Antoine
13-09-2013 17:40:36  Re: Compilation wxwidgets 2.9.5 Unicode #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1365
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Quelle version de wxWidgets utilises-tu ? 2.8.12 ou 2.9.5 ?

Essayes directement de mettre :

Code wxWidgets:

wxString tmp(_T("Salut à toi!"));
wxMessageBox(tmp);


@+
Xav'

Dernière modification par Xaviou (13-09-2013 17:40:43)


Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
13-09-2013 18:43:41  Re: Compilation wxwidgets 2.9.5 Unicode #3
antoine163 (Membre)
Inscrit le : 09-07-2010
Messages: 10
Snippets: 1
Tutoriels: 0
Hors ligne
Salut,

La version est la 2.9.5.

Effectivement ton code fonctionne.
Ceci dit, j'ai un wxString qui est plus ou moi un fichier codé en utf8. Je ne peux donc pas utiliser la macro _T (en tous les cas, cela ne compile pas).

Le code suivent fonctionne sous linux et j'aimerais aussi le faire fonctionner sur Windows.

Code wxWidgets:

wxMessageBox("Salut à toi!");


Peut être que je me trompe. Je n'ai pas encore essayé. Mais je pense que je vais avoir des caractères bizarres quand je vais vouloir traduire mon application en français.

Merci
+
Antoine
13-09-2013 19:00:15  Re: Compilation wxwidgets 2.9.5 Unicode #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1365
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
antoine163 a écrit:
Ceci dit, j'ai un wxString qui est plus ou moi un fichier codé en utf8. Je ne peux donc pas utiliser la macro _T (en tous les cas, cela ne compile pas).
Tu es certain que ton fichier est en UTF-8 ?
Je parie que tu as une erreur du style converting to execution character set: Invalid argument

antoine163 a écrit:
Peut être que je me trompe. Je n'ai pas encore essayé. Mais je pense que je vais avoir des caractères bizarres quand je vais vouloir traduire mon application en français.
En fait, si tu souhaites avoir une application utilisant le système de traduction, ça sera plus simple.
En effet, tu devras coder ton application en anglais (donc, sans caractères spéciaux) et seul le fichier de traductions contiendra des caractères Unicode.

A moins que tu décides de coder directement en français.
Dans ce cas (quand tu obtiens l'erreur ci-dessus), il faut juste convertir ton fichier source en UTF-8
Sous Code::Blocks, tu ouvres ton fichier dans l'éditeur, tu vas dans le menu "Edit", "File Encoding", "UTF-8", puis, très important sinon la manip ne sert à rien, tu redonnes le focus à l'éditeur en cliquant dedans (à ce moment là, tu as l’indication dans la barre d'état qui passe de "WINDOWS-1252" à "UTF-8" et tu l'enregistres avant de lancer la compilation.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
13-09-2013 19:46:38  Re: Compilation wxwidgets 2.9.5 Unicode #5
antoine163 (Membre)
Inscrit le : 09-07-2010
Messages: 10
Snippets: 1
Tutoriels: 0
Hors ligne
Xaviou a écrit:
Tu es certain que ton fichier est en UTF-8 ?
Oui, je me suis battu pour ça.

Xaviou a écrit:
Je parie que tu as une erreur du style converting to execution character set: Invalid argument
Je devrais voir cela où ?

Pour tout dire, je développe sous linux en anglais (en français pour les commentaires), tous mes fichiers sont encodé en utf8. Je suis en train de faire un peu de portabilité sous Windows mais j'ai ce problème que je n'arrive pas à résoudre.

Merci
+
Antoine
13-09-2013 21:41:35  Re: Compilation wxwidgets 2.9.5 Unicode #6
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1365
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
antoine163 a écrit:
Xaviou a écrit:
Je parie que tu as une erreur du style converting to execution character set: Invalid argument
Je devrais voir cela où ?
Dans les build logs

antoine163 a écrit:
Pour tout dire, je développe sous linux en anglais (en français pour les commentaires), tous mes fichiers sont encodé en utf8. Je suis en train de faire un peu de portabilité sous Windows mais j'ai ce problème que je n'arrive pas à résoudre.
Tu utilises quoi comme IDE ?
Et est-ce tes fichiers sources sont en UTF-8 avec ou sans "B.O.M." ?

Pour ma part, en utilisant Code::Blocks, j'utilise les mêmes fichiers sources sous Windows et sous Linux, sans retoucher quoi que ce soit, et même avec les caractères accentués, ça marche.

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
14-09-2013 00:34:05  Re: Compilation wxwidgets 2.9.5 Unicode #7
antoine163 (Membre)
Inscrit le : 09-07-2010
Messages: 10
Snippets: 1
Tutoriels: 0
Hors ligne
Dans les logs je n'ai rien vu.

Je n'utilise pas d'IDE, enfin si, Geany ,mais en tant qu'éditeur de texte, après j'ai mes makefiles ...

Mes fichiers sources sont encodés en utf8 sans BOM. Faut'il que j'active le BOM ?

Xaviou a écrit:
Pour ma part, en utilisant Code::Blocks, j'utilise les mêmes fichiers sources sous Windows et sous Linux, sans retoucher quoi que ce soit, et même avec les caractères accentués, ça marche.
Je vais essayer de compiler mon projet avec les libs que tu proposes, pour voir si le problème persiste toujours ...

Merci,

+

Antoine
14-09-2013 15:49:55  Re: Compilation wxwidgets 2.9.5 Unicode #8
antoine163 (Membre)
Inscrit le : 09-07-2010
Messages: 10
Snippets: 1
Tutoriels: 0
Hors ligne
Re salut,

Je n'ai pas réussi à compiler avec les libs que tu proposes.
Enfin bref, j'ai fait un test avec code::block
J'ai créé un projet de base, j'ai rajouté la fameuse ligne :

Code wxWidgets:

wxMessageBox("Salut à toi!");

J'ai compiler et puis ça fonctionne. Et l'encodage des ficher étaient en WINDOWS-1252.
J'ai changé ça, en utf-8, compilé et je reviens dans mon cas ou le "à" s'affiche avec des caractères bizarres.

+
Antoine
14-09-2013 16:11:19  Re: Compilation wxwidgets 2.9.5 Unicode #9
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1365
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
C'est normal.

Si tu mets ta chaîne de caractères entre de simples guillemets, il s'agit d'un const char *, c'est à dire une suite de caractères "Ansi".

Si par contre tu utilises la macro _T("..."), dans le cas de libs Unicode, c'est considéré comme un const wchar_t*, soit une suite de caractères Unicodes.

Il faut donc que le fichier source soit en corrélation avec le mode de compilation.

Sachant qu'à partir de wxWidgets-2.9.x, on peut mettre les deux cas pour construire un wxString, et c'est le framework qui va faire la conversion en Unicode si besoin est.

Si le fait d'utiliser la macro _T("...") te déranges, tu peux juste faire précéder tes chaînes de caractères d'un "L" (exemple : wxMessageBox(L"Salut à toi"); ) mais il faudra également que ton fichier source soit en UTF-8.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
14-09-2013 16:51:09  Re: Compilation wxwidgets 2.9.5 Unicode #10
antoine163 (Membre)
Inscrit le : 09-07-2010
Messages: 10
Snippets: 1
Tutoriels: 0
Hors ligne
ok,

Je voulais que "wxMessageBox("Salut à toi");" fonction aussi sous Windows parce que cela fonctionne très bien sous linux (fichier coder en UTF-8 ) ...

Bref, je crois je vais arrête là. :(

+
Antoine
14-09-2013 17:17:35  Re: Compilation wxwidgets 2.9.5 Unicode #11
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1365
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Tu utilises la même version de wxWidgets sous Linux ?

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
14-09-2013 18:03:42  Re: Compilation wxwidgets 2.9.5 Unicode #12
antoine163 (Membre)
Inscrit le : 09-07-2010
Messages: 10
Snippets: 1
Tutoriels: 0
Hors ligne
oui la 2.9.5
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Compilation - Installation - Réglages IDE
» Compilation wxwidgets 2.9.5 Unicode