MultiByteToWideChar: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
(Einige Fehler korrigiert)
Zeile 7: Zeile 7:
 
                 ByVal CodePage As Long, _
 
                 ByVal CodePage As Long, _
 
                 ByVal dwFlags As Long, _
 
                 ByVal dwFlags As Long, _
                 ByVal lpMultiByteStr As String, _
+
                 ByRef lpMultiByteStr As Byte, _
 
                 ByVal cchMultiByte As Long, _
 
                 ByVal cchMultiByte As Long, _
                 ByVal lpWideCharStr As String, _
+
                 ByVal lpWideCharStr As Long, _
 
                 ByVal cchWideChar As Long) As Long
 
                 ByVal cchWideChar As Long) As Long
  
Zeile 23: Zeile 23:
 
Private Const CP_ACP        As Long = 0    'ANSI Code Page
 
Private Const CP_ACP        As Long = 0    'ANSI Code Page
 
Private Const CP_OEMCP      As Long = 1    'OEM code page
 
Private Const CP_OEMCP      As Long = 1    'OEM code page
'Private Const CP_MACCP      As Long = 2    'Not supported
+
Private Const CP_MACCP      As Long = 2    '
'Private Const CP_THREAD_ACP As Long = 3    'Not supported
+
Private Const CP_THREAD_ACP As Long = 3    '
'Private Const CP_SYMBOL    As Long = 42    'Not supported
+
Private Const CP_SYMBOL    As Long = 42    '
Private Const CP_ANSI      As Long = 1252  'Windows-1252
 
 
Private Const CP_UTF7      As Long = 65000 'UTF-7 code page
 
Private Const CP_UTF7      As Long = 65000 'UTF-7 code page
 
Private Const CP_UTF8      As Long = 65001 'UTF-8 code page
 
Private Const CP_UTF8      As Long = 65001 'UTF-8 code page
Zeile 50: Zeile 49:
  
 
''lpMultiByteStr''
 
''lpMultiByteStr''
:[in] Zeiger zum Character String der konvertiert werden soll.
+
:[in] Zeiger auf die 8-Bit-Zeichenfolge, die konvertiert werden soll.
 
''cchMultiByte''
 
''cchMultiByte''
:[in] Größe, in Bytes, des Strings der konvertiert werden soll.
+
:[in] Größe, in Bytes, der 8-Bit-Zeichenfolge, der konvertiert werden soll.
ist dieser Wert –1, wird vorausgesetzt dass der String Null-terminiert ist und die Länge wird automatisch ermittelt.
 
 
''lpWideCharStr''
 
''lpWideCharStr''
:[out] Zeiger auf einen Puffer der den übersetzten String empfängt.
+
:[out] Zeiger auf einen Puffer, der den übersetzten UTF-16-String empfängt.
 
''cchWideChar''
 
''cchWideChar''
:[in] Größe, in Wide-Characters, des Puffers der den übersetzten String enthält.
+
:[in] Größe, in Wide-Characters, des Puffers, der den übersetzten UTF-16-String enthält.
Wenn hier Null übergeben wird, liefert die Funktion die erforderliche Größe in Wide-Characters zurück, aber es wird noch nichts übersetzt.
+
Wenn hier 0 übergeben wird, liefert die Funktion die erforderliche Größe in UTF-16-Codeeinheiten zurück, aber es wird nichts übersetzt.
  
 
==Rückgabe(n)==
 
==Rückgabe(n)==
Anzahl der Wide-Characters die in den Puffer geschrieben wurden, wenn die Function erfolgreich war und cchWideChar ist <> Null.
+
Anzahl der UTF-16-Codeeinheiten, die in den Puffer geschrieben wurden, wenn die Funktion erfolgreich war und cchWideChar ist <> 0.
 
Anmerkung: die zurückgegebene Länge enthält ein Null-Terminierungs-Zeichen.
 
Anmerkung: die zurückgegebene Länge enthält ein Null-Terminierungs-Zeichen.
  
Zeile 81: Zeile 79:
 
returns 0 and sets GetLastError with the error ERROR_NO_UNICODE_TRANSLATION.
 
returns 0 and sets GetLastError with the error ERROR_NO_UNICODE_TRANSLATION.
  
==[OPTIONAL] Beispiel==
+
==Beispiel==
  
 
<code vb>
 
<code vb>
Zeile 88: Zeile 86:
  
  
==[OPTIONAL] Hinweise==
+
==Betriebssystem==
 
 
Diese Funktion setzt die ABC - Runtime Environment voraus. Diese ist kostenlos erhältlich unter: [Adresse].
 
 
 
 
 
==[OPTIONAL] Betriebsystem==
 
  
 
Die Funktion ist unter folgenden Betriebssystemen funktionsfähig:
 
Die Funktion ist unter folgenden Betriebssystemen funktionsfähig:
  
*Windows NT 4.0
+
*Windows NT 3.1 und später
*Windows NT 5.0 (2000)
+
*Windows 2000
*Windows XP (ab SP2)
+
*Windows XP
*Windows Vista (nur x64)
+
*Windows Vista
*Windows Mobile
 
*Windows Embedded CE
 
 
 
==[OPTIONAL] Verwandte Funktionen==
 
 
 
[[Api1]] - Beschreibung<br>
 
[[Api2]] - Beschreibung
 
Unicode Functions [MSDN-Link: http://msdn.microsoft.com/en-us/library/aa914568.aspx]
 
WideCharToMultiByte [MSDN-Link: http://msdn.microsoft.com/en-us/library/aa908730.aspx]
 
IsDBCSLeadByte [MSDN-Link: http://msdn.microsoft.com/en-us/library/aa908969.aspx]
 
 
 
 
 
==Verweise==
 
 
 
*[http://msdn.microsoft.com/en-us/library/bb202786.aspx ''MultiByteToWideChar''] <br>
 
 
 
 
 
  
==[PFLICHT] Quelle(n)==
 
  
*MSDN US-Libary (http://msdn.microsoft.com/en-us/library/bb202786.aspx).
+
==Quellen==
*Andere Quellen (falls vorhanden)
 
  
 +
*[http://msdn.microsoft.com/en-us/library/ms776415.aspx Unicode and Character Set Functions]
 +
*[http://msdn.microsoft.com/en-us/library/ms776413.aspx WideCharToMultiByte]
  
 
[[Kategorie:kernel]]
 
[[Kategorie:kernel]]

Version vom 21. Oktober 2008, 18:38 Uhr

Die API-Funktion MultiByteToWideChar konvertiert einen einbyte/mehrbyte-Character-String in einen Wide-Character-Unicode-String.

Declare Function MultiByteToWideChar lib "kernel32.dll" ( _

                ByVal CodePage As Long, _
                ByVal dwFlags As Long, _
                ByRef lpMultiByteStr As Byte, _
                ByVal cchMultiByte As Long, _
                ByVal lpWideCharStr As Long, _
                ByVal cchWideChar As Long) As Long


Parameter

CodePage

die Codepage die bei der Konversion verwendet werden soll. Es kann jede im System installierte Codepage verwendet werden oder eine aus der folgenden Liste:

die Liste ist nicht vollständig sie zeigt mögliche Werte Private Const CP_ACP As Long = 0 'ANSI Code Page Private Const CP_OEMCP As Long = 1 'OEM code page Private Const CP_MACCP As Long = 2 ' Private Const CP_THREAD_ACP As Long = 3 ' Private Const CP_SYMBOL As Long = 42 ' Private Const CP_UTF7 As Long = 65000 'UTF-7 code page Private Const CP_UTF8 As Long = 65001 'UTF-8 code page

dwFlags

Es kann eine Kombination aus folgenden Flags verwendet werden

Private Const MB_PRECOMPOSED As Long = &H1 'Always use precomposed characters — that is, characters in

                                                'which a base character and a nonspacing character have a
                                                'single character value. This is the default translation option.
                                                'Cannot be used with MB_COMPOSITE.

Private Const MB_COMPOSITE As Long = &H2 'Always use composite characters — that is, characters in

                                                'which a base character and a nonspacing character have
                                                'different character values. Cannot be used with MB_PRECOMPOSED.

Private Const MB_USEGLYPHCHARS As Long = &H4 'Use glyph characters instead of control characters

Private Const MB_ERR_INVALID_CHARS As Long = &H8 'If the function encounters an invalid input character,

                                                'it fails and Err.LastDllError returns ERROR_NO_UNICODE_TRANSLATION.

lpMultiByteStr

[in] Zeiger auf die 8-Bit-Zeichenfolge, die konvertiert werden soll.

cchMultiByte

[in] Größe, in Bytes, der 8-Bit-Zeichenfolge, der konvertiert werden soll.

lpWideCharStr

[out] Zeiger auf einen Puffer, der den übersetzten UTF-16-String empfängt.

cchWideChar

[in] Größe, in Wide-Characters, des Puffers, der den übersetzten UTF-16-String enthält.

Wenn hier 0 übergeben wird, liefert die Funktion die erforderliche Größe in UTF-16-Codeeinheiten zurück, aber es wird nichts übersetzt.

Rückgabe(n)

Anzahl der UTF-16-Codeeinheiten, die in den Puffer geschrieben wurden, wenn die Funktion erfolgreich war und cchWideChar ist <> 0. Anmerkung: die zurückgegebene Länge enthält ein Null-Terminierungs-Zeichen.

Zero indicates failure. To get extended error information, call GetLastError. Possible values for GetLastError include the following:

ERROR_INSUFFICIENT_BUFFER ERROR_INVALID_FLAGS ERROR_INVALID_PARAMETER ERROR_NO_UNICODE_TRANSLATION

Remarks If lpMultiByteStr and lpWideCharStr pointers are the same, the function fails, and GetLastError returns the value ERROR_INVALID_PARAMETER. The function fails if MB_ERR_INVALID_CHARS is set and it encounters an invalid character in the source string. An invalid character is one that would translate to the default character if MB_ERR_INVALID_CHARS was not set, but is not the default character in the source string, or when a lead byte is found in a string and there is no valid trail byte for DBCS strings. When an invalid character is found, and MB_ERR_INVALID_CHARS is set, the function returns 0 and sets GetLastError with the error ERROR_NO_UNICODE_TRANSLATION.

Beispiel

'Beispielcode...


Betriebssystem

Die Funktion ist unter folgenden Betriebssystemen funktionsfähig:

  • Windows NT 3.1 und später
  • Windows 2000
  • Windows XP
  • Windows Vista


Quellen