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 beendeten 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 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, der die Zeichenfolge empfängt. 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 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, nicht einschließlich des endenden NULL-Zeichens.
Wenn die Zeichenfolgenressource nicht vorhanden ist, ist der Rückgabewert null.
Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Im Gegensatz zur LoadStringW--Funktion unterstützt die LoadStringA--Funktion das Übergeben eines Werts von Null für cchBufferMaxnicht. Dadurch wird arbeitsspeicher beschädigt.
Sicherheitsmerkungen
Die Verwendung dieser Funktion kann die Sicherheit Ihrer Anwendung fälschlicherweise beeinträchtigen. Falsche Verwendung umfasst das Angeben der falschen Größe im cchBufferMax Parameter. Wenn z. B. lpBuffer auf einen Puffer szBuffer verweist, der alsTCHAR 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
andere Ressourcen
Referenz-