 |
Beschreibung:
WideCharToMultiByte wandelt une Unicode String dans une Multi- ou bien Singlebyte String um.
Deklaration:
DEF @WideCharToMultiByte(8) !kernel32,WideCharToMultiByte
paramètre:
1.paramètre: Codepage numéro comme Integer. => -0 = ANSI Codepage -1= OEM Codepage -2 = Macintosh Codepage
2.paramètre: Performance- et Umwandlungsflags comme LongInt (peux 0 son).
3.paramètre: Bereich mt ou bien Adresse eines Cordes im Unicode Format, qui konvertiert volonté soll.
4.paramètre: Nombre de Buchstaben im String aus paramètre 3. Wird ici –1 angegeben, wird angenommen, dass qui String avec einem Nullbyte endet et qui Taille automatisch berechnet.
5.paramètre: Ausreichend dimensionierte Bereichsvariable, qui den konvertierten String aufnimmt.
6.paramètre: Taille des Bereichs de paramètre 5 comme Integer. si cette paramètre 0 ist, gibt qui Funktion qui benötigte Anzahl à Bytes pour paramètre 5 zurück.
7.paramètre: Adresse eines Cordes ou bien Bereichsvariable avec einem String, qui une Buchstaben contient, qui eingesetzt wird, si un Unicode Buchstabe pas traduit volonté peux. cette paramètre peux 0 son – es wird ensuite un Systemstandard verwendet.
8.paramètre: Bereichsvariable, qui qui Adresse eines Flags empfängt, qui anzeigt si un Buchstabe par un ‚Default’ (paramètre 7) ersetzt wurde (peux 0 son). => -1 = oui -0 = non
Rückgabewert:
si paramètre 6 sur 0 gesetzt wird et qui Aktion gelingt, liefert qui API comme Rückgabe qui erforderliche Taille des Bereiches dans paramètre 5. si paramètre 6 ungleich 0 ist et qui Funktion erfolgreich abgeschlossen wurde, ist qui Rückgabe le nombre qui kopierten marque (+abschließendes Nullbyte). chez Rückgabe 0 est un faute aufgetreten.
Beispiele:
KompilierenMarqueSéparationDEF @WideCharToMultiByte(8) !"kernel32","WideCharToMultiByte"
DEF @MultiByteToWideChar(6) !"kernel32","MultiByteToWideChar"
DEF @GetACP(0) !"kernel32","GetACP"
Windowstyle 31
Windowtitle "Stringumwandlung ins Unicode Format"
Window 0,0-640,440
Declare Unicode#,SingleByte#,SingleByte$,Fehler&
DIM Unicode#,256*2
DIM SingleByte#,256
Clear Unicode#
LET SingleByte$=@input$("Bitte Wort eingeben","Stringumwandlung","Hallo")
LET Fehler&=@MultiByteToWideChar(@GetACP(),0,@ADDR(SingleByte$),-1,Unicode#,256*2)
Print "Rückmeldung von MultiByteToWideChar="+@STR$(Fehler&)
Print "Singlebyte="+SingleByte$
PRINT "Unicode="+@CHAR$(Unicode#,0,@LEN(SINGLEBYTE$)*2)
Let Fehler&=@WideCharToMultiByte(@GetACP(),0,Unicode#,-1,SingleByte#,256,0,0)
Print "Rückmeldung von WideCharToMultiByte="+@STR$(Fehler&)
Print "Zurück in Singlebyte="+@STRING$(Singlebyte#,0)
Dispose Unicode#
Dispose SingleByte#
While 0=0
Waitinput
Wend
|
|