Domanda

Ciao ho un applicazione che funziona bene su Windows Xp pro, finestre Visa, Windows 7

Ma quando l'eseguo su Windows XP Embedded non funziona e dà il seguente errore:

EEncodingError - pagina di codice non valido

Quando l'applicazione è stata fatta con Delphi 2006 funziona su Windows XP Embedded

** quando l'applicazione è fatto con Delphi 2010 lo fa ** non funziona su Windows XP Embedded ****

È stato utile?

Soluzione

Gli usi di proprietà TEncoding.ASCII tabella codici 20127, che non è installato su XP Embedded per impostazione predefinita. È necessario installarlo manualmente. La classe TEncoding non esiste in D2006.

Stai usando Indy 10, per caso? Esso utilizza TEncoding.ASCII per impostazione predefinita per le sue codifiche stringa. è stato conosciuto questo errore esatto che si verificano quando si utilizza Indy su XP Embedded.

Altri suggerimenti

Quando si pianta? All'avvio, o più tardi?

Questo errore si trova solo in un posto, nel RTL, almeno. In SysUtils, constructor TMBCSEncoding.Create(CodePage, MBToWCharFlags, WCharToMBFlags: Integer);, che viene chiamato da TEncoding per impostare codifiche stringa.

Ci vuole il parametro CodePage e chiama GetCPInfo su di esso, e se non riesce solleva questa eccezione. Dalla documentazione MSDN e il messaggio di eccezione, quello che sta probabilmente accadendo è che la vostra applicazione sta cercando di usare le stringhe da un set di caratteri multibyte che non è supportata da XP Embedded. State facendo qualcosa di insolito con le stringhe o il lavoro di testo in lingue straniere che utilizzano un alfabeto diverso?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top