Bonjour,
Je dois passer un programme en Unicode, je definie _UNICODE, mais à la compilation il y a beaucoup d'erreurs.
Quelqu'un pourrais il m'indiquer la procédure ?
Merci,
Christophe,
Bonjour,
Je dois passer un programme en Unicode, je definie _UNICODE, mais à la compilation il y a beaucoup d'erreurs.
Quelqu'un pourrais il m'indiquer la procédure ?
Merci,
Christophe,
Bonjour,
- Il faut définir à la fois _UNICODE et UNICODE.
- Le programme doit être correctement écrit pour supporter d'être compilé dans les deux modes (emploi des TCHAR, conversion conditionnelle quand certaines fonctions exigent l'un ou l'autre type de chaîne... (Facilité par les CStringT de MFC 7))
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Effectivement tu peux utiliser TCHAR comme type. Le principe est que le preprocesseur va remplacer TCHAR par wchar_t ou char selon que tu compiles en Unicode ou non.
Le point d'entree de ton programme doit être wWinMainCRTStartup
Le changement majeur est que tes caracteres ne seront plus codés sur un octet, mais sur au moins deux. Du coup, les fonctions du CRT ne fonctionnent pas en version ANSI sur des buffer Unicode.
Tu trouveras tous les équivalents dans tchar.h ou à cette adresse :
http://msdn.microsoft.com/library/de...e_mappings.asp
Qu'est-ce que fait ton programme ??
Quels sont les types d'erreurs que tu as ??
Mais renseigne toi sur le sujet avant de te lancer, ce n'est pas tres long de comprendre comment gérer des buffers Unicode sous Windows et ca te fera gagner énormément de temps pour corriger les erreur de compil.
Gaffe à ce que tu dis, là...Le point d'entree de ton programme doit être wWinMainCRTStartup
Cette fonction ne doit pas être définie par l'utilisateur, elle est fournie par la CRT. Par contre, c'est elle qui appelle le main()...
En TCHAR, le main() doit s'appeler _tmain().
Ou si tu as une application fenêtrée, WinMain() doit s'appeler _tWinMain() (mais en MFC, tu ne verras ni l'une ni l'autre de toute façon).
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Désolé du manque de précision Médinoc.
Christophe, En MFC, tu ne définis pas le point d'entrée. En fait ton point d'entrée est la fonction InitInstance de ton objet APP.
Pour que la fonction InitInstance, mappe le bon point d'entrée tu dois définir dans les settings de ton projet (sous VC6, Project-->Settings-->Link. Category-->Output. Entry Point Symbol = wWinMainCRTStartup).
Je pense que c'est inutile, ça : Il me semble bien que c'est choisi par défaut selon les réglages et le nom de la fonction main utilisée (enfin, peut-être pas sous Visual 6, tout compte fait).
Il faudrait éviter de s'exiter avec le point d'entrée, que je n'ai jamais eu à changer en 4.5 ans de prog sous Visual 6 puis 8...
(sauf la fois où j'ai bricolé un programme sans la CRT, bien sûr...)
Edit: Normal, j'oubliais de changer le main()...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager