LoadStringW-Funktion (winuser.h)

Lädt eine Zeichenfolgenressource aus der ausführbaren Datei, die einem angegebenen Modul zugeordnet ist, und kopiert die Zeichenfolge entweder in einen Puffer mit einem beendenden NULL-Zeichen oder gibt einen schreibgeschützten Zeiger auf die Zeichenfolgenressource selbst zurück.

Syntax

int LoadStringW(
  [in, optional] HINSTANCE hInstance,
  [in]           UINT      uID,
  [out]          LPWSTR    lpBuffer,
  [in]           int       cchBufferMax
);

Parameter

[in, optional] hInstance

Typ: HINSTANCE

Ein Handle für eine instance des Moduls, dessen ausführbare Datei die Zeichenfolgenressource enthält. Um das Handle für die Anwendung selbst abzurufen, rufen Sie die GetModuleHandle-Funktion mit NULL auf.

[in] uID

Typ: UINT

Der Bezeichner der zu ladenden Zeichenfolge.

[out] lpBuffer

Typ: LPTSTR

Der Puffer, um die Zeichenfolge zu empfangen (wenn cchBufferMax ungleich Null ist) oder einen schreibgeschützten Zeiger auf die Zeichenfolgenressource selbst (wenn cchBufferMax null ist). Muss von ausreichender Länge sein, um einen Zeiger (8 Bytes) aufzunehmen.

[in] cchBufferMax

Typ: int

Die Größe des Puffers in Zeichen. Die Zeichenfolge wird abgeschnitten und null beendet, wenn sie länger als die angegebene Anzahl von Zeichen ist. Wenn dieser Parameter 0 ist, empfängt lpBuffer einen schreibgeschützten Zeiger auf die Zeichenfolgenressource selbst.

Rückgabewert

Typ: int

Wenn die Funktion erfolgreich ist, ist der Rückgabewert einer der folgenden:

  • Die Anzahl der Zeichen, die in den Puffer kopiert werden (wenn cchBufferMax ungleich null ist), ohne das beendende NULL-Zeichen.
  • Die Anzahl der Zeichen in der Zeichenfolgenressource, auf die lpBuffer zeigt (wenn cchBufferMax null ist). Es ist nicht garantiert, dass die Zeichenfolgenressource in der Ressourcentabelle des Moduls null beendet ist, und Sie können diesen Wert verwenden, um zu bestimmen, wo die Zeichenfolgenressource endet.
  • Null, wenn die Zeichenfolgenressource nicht vorhanden ist.

Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn Sie 0 an cchBufferMax übergeben, um einen schreibgeschützten Zeiger auf die Zeichenfolgenressource im lpBuffer-Parameter zurückzugeben, verwenden Sie die Anzahl der Zeichen im Rückgabewert, um die Länge der Zeichenfolgenressource zu bestimmen. Zeichenfolgenressourcen werden in der Ressourcentabelle des Moduls nicht garantiert null beendet. Ressourcentabellen können jedoch NULL-Zeichen enthalten. Zeichenfolgenressourcen werden in Blöcken mit 16 Zeichenfolgen gespeichert, und alle leeren Slots in einem Block werden durch NULL-Zeichen gekennzeichnet.

Sicherheitsbemerkungen

Die falsche Verwendung dieser Funktion kann die Sicherheit Ihrer Anwendung gefährden. Die falsche Verwendung umfasst das Angeben der falschen Größe im nBufferMax-Parameter . Wenn lpBuffer beispielsweise auf einen Puffer szBuffer verweist, der als TCHAR szBuffer[100]deklariert wird, gibt sizeof(szBuffer) die Größe des Puffers in Bytes an, was zu einem Pufferüberlauf für die Unicode-Version der Funktion führen kann. Pufferüberlaufsituationen sind die Ursache vieler Sicherheitsprobleme in Anwendungen. In diesem Fall würde die Verwendung sizeof(szBuffer)/sizeof(TCHAR) von oder sizeof(szBuffer)/sizeof(szBuffer[0]) die richtige Größe des Puffers geben.

Beispiele

Ein Beispiel finden Sie unter Erstellen eines untergeordneten Fensters.

Hinweis

Der winuser.h-Header definiert LoadString als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll

Siehe auch

Konzept

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadMenuIndirect

Andere Ressourcen

Referenz

Zeichenfolgen