Freigeben über


LoadStringA-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 abschließenden NULL-Zeichen oder gibt einen schreibgeschützten Zeiger auf die Zeichenfolgenressource selbst zurück.

Syntax

int LoadStringA(
  [in, optional] HINSTANCE hInstance,
  [in]           UINT      uID,
  [out]          LPSTR     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, der die Zeichenfolge empfangen soll. Muss mindestens cchBufferMax-Zeichen groß sein.

[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. Dieser Parameter darf nicht 0 (null) sein.

Rückgabewert

Typ: int

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Anzahl der Zeichen, die in den Puffer kopiert wurden, ohne das abschließende NULL-Zeichen.

Wenn die Zeichenfolgenressource nicht vorhanden ist, ist der Rückgabewert null.

Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Im Gegensatz zur LoadStringW-Funktion unterstützt die LoadStringA-Funktion das Übergeben des Werts 0 (null) für cchBufferMax nicht. Dadurch wird der Arbeitsspeicher beschädigt.

Sicherheitsbemerkungen

Die falsche Verwendung dieser Funktion kann die Sicherheit Ihrer Anwendung beeinträchtigen. Die falsche Verwendung umfasst die Angabe der falschen Größe im cchBufferMax-Parameter . Wenn lpBuffer beispielsweise auf einen Puffer szBuffer zeigt, der als TCHAR szBuffer[100]deklariert ist, 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 für viele 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 ergeben.

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 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

   
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 (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll

Siehe auch

Konzept

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadMenuIndirect

Andere Ressourcen

Referenz

Zeichenfolgen