BOnjour à tous,
encore un nouveau soucis avec mon passage sous Builder XE10.
J'ai une erreur :
Le programme se compile très bien mais dès que je lance il me met cette erreur.Classe d'exception EEncodingError avec un message 'Aucun mappage pour le caractère Unicode n'existe dans la page de code multi-octet cible'.
J'ai plus ou moins identifier le problème. Mais c'est compliqué.
Pour faire simple,
J'ai une FormPrincipale que je cache au lancement de l'application et une FormIdentification que j'affiche d'abord. Dans cette FormIdentification j'appelle une fonction :
Le code étant :void GererIdentificationChargementTux(AnsiString asTux); //Gère l'affichage du Tux passé en paramètre
Avec cela ça plante. Après quelques tests, en mettant tout le code en commentaire, l'application se lance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 void GererIdentificationChargementTux(AnsiString asTux) //Gère l'affichage du Tux passé en paramètre { if(asTux != "") { TImage *Image = new TImage(0); TJPEGImage *pGraphTux = new TJPEGImage; if(FileExists(FormPrincipale->asRepertoireLogiciel+"Tux.DLL")) { HANDLE hTuxDll = LoadLibrary((FormPrincipale->asRepertoireLogiciel+"Tux.DLL").c_str()); TResourceStream *Res = new TResourceStream((int)hTuxDll, asTux, RT_RCDATA); pGraphTux->LoadFromStream(Res); pGraphTux->Transparent = true; Image->Picture->Bitmap->Assign(pGraphTux); delete Res; FormIdentification->ImageIdentificationLogin->Visible = true; FormIdentification->ImageIdentificationLogin->Picture = Image->Picture; } else FormIdentification->ImageIdentificationLogin->Visible = false; delete Image; delete pGraphTux; } else FormIdentification->ImageIdentificationLogin->Visible = false; } //---------------------------------------------------------------------------
Le plus bizarre c'est que lorsque l'application plante, elle plante à la création de la FormPrincipale. Directement lors de l’exécution du constructeur où il n'y a aucuns codes. Avant même que la fonction ne soit appelée.
De plus si dans cette fonction je remplace l'AnsiString passé en paramètre par un ''int'' cela passe aussi.
Donc voila, je pense que c'est pas gagné mais si quelqu'un avait une idée,
Merci d'avance
Partager