Accueil > Forum > > > > Erreur bizarre : MessageBox affiche du texte en japonais
Erreur bizarre : MessageBox affiche du texte en japonais
mardi 22 avril 2008 à 09:14:16 |
Erreur bizarre : MessageBox affiche du texte en japonais

epineurien
|
Bonjour à tous ! J'ai quelques problêmes avec visual studio C++. Quand j'utilise une MessageBox le texte apparait ... en japonais. J'ai désactivé le support de ces caractères et à la place j'obtiens ... des carrés. Là je comprend pas, parceque mes pointeurs sont bon ; si je fais varier la longeur de mes chaines, ca varie aussi dans la messagebox. Petit détail , au lieu de lire les caractères comme faisant 1 octect (ASCII normal) l'api semble les lire par deux (chaine de 6 caractères en fait 3jap. et elle ne reconnait le zéro terminal que si il fait 2octet). Si quelqu'un à une idée, parceque ca me faisait pas ça avec masm32... Merci d'avance ! Voilà le code : char ClasseFenetre[8]="BUTTON"; //chaine au hazard char HgTitreFenetre[27]="Session Hydrargyrum 0.20a"; OffsetClasse=&HgClasseFenetre[0]; OffsetTitre=&HgTitreFenetre[0]; __asm { mov eax,0 mov ebx,OffsetClasse mov ecx,OffsetTitre mov edx,MB_YESNO+MB_ICONEXCLAMATION push edx push ecx push ebx push eax call DWORD PTR MessageBox } Franchement je voit pas d'où ça peut venir ...
Jetez un coup d'oeil à mon projet de moteur 3D par lancer de rayons : http://hydrargyrum.ifrance.com.
|
|
mardi 22 avril 2008 à 10:27:10 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

BruNews
|
char ClasseFenetre[]= "BUTTON"; char HgTitreFenetre[]= "Session Hydrargyrum 0.20a"; Ces 2 chaines en haut de module, segment .data mis par le compilo. Fonction FULL ASM ou FULL C mais jamais de mixage !!! __declspec(naked) void __stdcall bnMsgbox() { __asm { push 0 push offset HgTitreFenetre push offset ClasseFenetre push 0 call dword ptr MessageBox ret 0 } }
ciao... BruNews, MVP VC++
|
|
mardi 22 avril 2008 à 13:07:35 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

epineurien
|
Tient je me demandait aussi comment on faisait pour faire autre chose que des variables locales(sur la pile) en C, j'avais pas pensé à simplement les mettres hors d'une fonction  . Note : il s'agit pas d'une fonction , le code que j'ai mis est dans le corps de 'main'. J'arrive pas à déclarer ta fonction (enfin, le linker ne la trouve pas). Je la met avant 'main' et je met 'DWORD __stdcall bnMsgBox();' dans l'entête, pourtant j'ai quand même 'error LNK2001: symbole externe non résolu _bnMsgBox@0'. J'ai remplacer par tes instructions (chaine dans l'entete,...) mais ca donne toujours du jap. (enfin, des cubes là). Mais c'est pas normal, peut importe ce qu'on passe comme argument, la fonction est sensé recevoir une chaine qu'elle interprête comme de l'ASCII, hors y a pas de caractère asiatique dans ce format, donc comment elle fait ??? Rah, c'était tellement plus simple avec du pur asm. Qu'est-ce qui faut pas faire pour avoir accés à 4 pauvres instructions en plus ... 
Jetez un coup d'oeil à mon projet de moteur 3D par lancer de rayons : http://hydrargyrum.ifrance.com.
|
|
mardi 22 avril 2008 à 13:26:10 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

BruNews
|
C'est du PUR ASM !!! faut juste bien comprendre ce qui se passe.
quand tu mets: char ClasseFenetre[8]="BUTTON"; dans une fonction, les octets "BUTTON" sont bien placés par le compilo dans le segment .data, idem si on l'avait fait à la main dans MASM.
ciao... BruNews, MVP VC++
|
|
mardi 22 avril 2008 à 13:39:24 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

epineurien
|
Ah ? Etrange , parceque le compilateur me refuse toute commande 'offset Variable', si 'Variable' est dans le corps d'une fonction (pas de problêmes maintenant que je les ais mises en dehors), avec 'lea eax,variable' ca fonctionne par contre. Ca ressemblait au problême de MASM qui refuse la commande 'offset' sur une variable locale : celle-ci est dans la pile et non dans le segment de data. Je me suis donc dit que les variables déclaré hors de l'entête en C sont elles aussi des variables locales.  Et pour ce qui ce qui est de savoir comment une fonction qui est sensée interprété de l'ASCII se met à faire ... autre chose ? Et pour la déclaration de fonction ? J'ai été voir tes autres codes sources (a force de poser des questions et que ce soit toujours toi qui réponde je commence à avoir un gros dossier 'Code BruNews' sur mon disque  ), mais je voit pas où j'ai m... dans la déclaration (c'est décidé ce soir j'achète C++ pour les nuls en rentrant).
Jetez un coup d'oeil à mon projet de moteur 3D par lancer de rayons : http://hydrargyrum.ifrance.com.
|
|
mardi 22 avril 2008 à 13:50:18 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

BruNews
|
C'est clair, offset est calcul (debSegment - posSegment) donc ce qui est sur stack ne peut pas fonctionner ainsi mais en décalage de ESP.
ciao... BruNews, MVP VC++
|
|
mardi 22 avril 2008 à 19:10:51 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

epineurien
|
Bon finalement j'ai pas eu besoin du bouquin. J'ai définit ta fonction, je la lance et .... Japonais  . Donc ça vient pas du code. Y a un réglage 'forcer l'affichage de caractère bizarre' dans les options de VSC++, des fois que je l'aurais coché par erreur  ?
Jetez un coup d'oeil à mon projet de moteur 3D par lancer de rayons : http://hydrargyrum.ifrance.com.
|
|
mercredi 23 avril 2008 à 13:12:46 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

epineurien
|
Personne n'a de solution ?  Parceque tant que j'arrive pas à afficher correctement une simple msgBox, c'est même pas la peine d'essayer les autre API.
Jetez un coup d'oeil à mon projet de moteur 3D par lancer de rayons : http://hydrargyrum.ifrance.com.
|
|
mercredi 23 avril 2008 à 13:27:06 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

BruNews
|
Mets un lien sur ton projet VS, je regarderai ce soir en rentrant.
ciao... BruNews, MVP VC++
|
|
mercredi 23 avril 2008 à 17:25:03 |
Re : Erreur bizarre : MessageBox affiche du texte en japonais

epineurien
|
C'est fait : http://hydrargyrum.ifrance.com/telechargement/Demonstration.rar.txt Il faudra enlever le '.txt' aprés le téléchargement (un problême avec l'hébergeur). Merci de ton acharnement à m'aider. 
Jetez un coup d'oeil à mon projet de moteur 3D par lancer de rayons : http://hydrargyrum.ifrance.com.
|
|
Cette discussion est classée dans : texte, mov, messagebox, push, japonais
Répondre à ce message
Sujets en rapport avec ce message
Ancien code - CreateWindowEx ne fonctionne pas [ par TehWan ]
Je ne comprends vraiment pas pourquoi CreateWindowEx ne fonctionne pas. Je code en ancien code avec MASM32. J'ai même essayé la nouvelle syntaxe (invo
masm32 [ par kiki127 ]
je n'arrive pas à compiler ce petit prog avec masm.pourriez vous m'indiquer la marche a suivre.merci d'avanceprog segmentorg 100hassume cs:progstart:c
probleme affichage cadre [ par jo_benni ]
Salut à tous, voilà je débute en assembleur et j'ai fait un petit programme exe qui affiche une succession de cadre de plus en plus grand. Le probleme
Quels sont les parametres (nombre, taille...) [ par Renfield ]
Bonjour,on peut appeler RunDll32 pour executer des fonctions contenues dans des dll...j'aimerais m'affranchir de cette étape, mais j'ai pour cela beso
boot secteur [ par henri12 ]
salutje viens de decompiler le boot secteur d une disquette de demarrageje voudrais savoir ou puis je mettre 15 octet de code que je veux faire execut
BeginPaint code débutant [ par TRAX44 ]
Bonjour, le problème est tout simple je comprends absolument pas ce qui marche pas. Le "programme" est censé créer une fenêtre est afficher du texte e
Messagebox (niveau débutant) [ par Ulala2 ]
Bonjour,je suis en train de créer une dll que je vais invoquer en vb6.Tout marche très bien, sauf pour la fonction messagebox dont n'arrive pas à récu
Problemme avec mes character... XD [ par belette321 ]
J'esseil d'ajouter une commande administrateur a dans un des mes jeux en-ligne, /admin_popup (Fait apparaitre un MSG dans une boite dans le lobby). Un
Probléme d'Affichage pour les chaines de caractères [ par HwW_Mb ]
Salut les petits :-)A L'AIDE !!!!!!!!!!!!!j'ai programmé un Mini Os avec un secteur de démarrage et un noyau de 5 secteursmais je n'arrive pas à affic
conversion minuscule [ par safwensafwen ]
C'est unprogramme qui fair la conversion en minuscule en utilisant la pile je n'arriv
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|