Freigeben über


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 beendeten 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 zu einer Instanz des Moduls, dessen ausführbare Datei die Zeichenfolgenressource enthält. Rufen Sie zum Abrufen des Handles zur Anwendung selbst die GetModuleHandle--Funktion mit NULL-auf.

[in] uID

Typ: UINT-

Der Bezeichner der zu ladenden Zeichenfolge.

[out] lpBuffer

Typ: LPTSTR-

Der Puffer zum Empfangen der Zeichenfolge (wenn cchBufferMax- ungleich Null ist) oder ein schreibgeschützter Zeiger auf die Zeichenfolgenressource selbst (wenn cchBufferMax null ist). Muss ausreichend lang sein, um einen Zeiger (8 Byte) zu halten.

[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, erhält 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 wurden (wenn cchBufferMax ungleich Null ist), nicht einschließlich des endenden Nullzeichens.
  • Die Anzahl der Zeichen in der Zeichenfolgenressource, auf die lpBuffer verweist (wenn cchBufferMax null ist). Die Zeichenfolgenressource ist nicht garantiert null-beendet in der Ressourcentabelle des Moduls, und Sie können diesen Wert verwenden, um zu bestimmen, wo die Zeichenfolgenressource endet.
  • Null, wenn die Zeichenfolgenressource nicht vorhanden ist.

Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

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

Sicherheitsmerkungen

Die Verwendung dieser Funktion kann die Sicherheit Ihrer Anwendung fälschlicherweise beeinträchtigen. Falsche Verwendung umfasst das Angeben der falschen Größe im nBufferMax Parameter. Wenn z. B. lpBuffer auf einen Puffer szBuffer verweist, der als TCHAR szBuffer[100]deklariert wird, gibt sizeof(szBuffer) die Größe des Puffers in Byte 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 von sizeof(szBuffer)/sizeof(TCHAR) oder sizeof(szBuffer)/sizeof(szBuffer[0]) die richtige Größe des Puffers geben.

Beispiele

Ein Beispiel finden Sie unter Erstellen eines untergeordneten Fensters

Anmerkung

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 Code, der nicht codierungsneutral ist, 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
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- winuser.h (enthalten Windows.h)
Library User32.lib
DLL- User32.dll

Siehe auch

Konzeptionelle

FormatMessage-

LoadAccelerators-

LoadBitmap-

LoadCursor-

LoadIcon-

LoadMenu-

LoadMenuIndirect

andere Ressourcen

Referenz-

Zeichenfolgen