Partager via


LoadStringA, fonction (winuser.h)

Charge une ressource de chaîne à partir du fichier exécutable associé à un module spécifié et copie la chaîne dans une mémoire tampon avec un caractère null de fin ou renvoie un pointeur en lecture seule vers la ressource de chaîne elle-même.

Syntaxe

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

Paramètres

[in, optional] hInstance

Type : HINSTANCE

Handle vers une instance du module dont le fichier exécutable contient la ressource de chaîne. Pour obtenir le handle de l’application elle-même, appelez la fonction GetModuleHandle avec NULL.

[in] uID

Type : uiNT

Identificateur de la chaîne à charger.

[out] lpBuffer

Type : LPTSTR

Mémoire tampon à recevoir la chaîne. Doit être au moins cchBufferMax caractères de taille.

[in] cchBufferMax

Type : int

Taille de la mémoire tampon, en caractères. La chaîne est tronquée et terminée par null si elle est supérieure au nombre de caractères spécifié. Ce paramètre peut ne pas être égal à zéro.

Valeur de retour

Type : int

Si la fonction réussit, la valeur de retour est le nombre de caractères copiés dans la mémoire tampon, sans inclure le caractère null de fin.

Si la ressource de chaîne n’existe pas, la valeur de retour est égale à zéro.

Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

Contrairement à la fonction LoadStringW , la fonction LoadStringA ne prend pas en charge la transmission d’une valeur nulle pour cchBufferMax. Cela endommagera la mémoire.

Remarques sur la sécurité

L’utilisation incorrecte de cette fonction peut compromettre la sécurité de votre application. L’utilisation incorrecte inclut la spécification de la taille incorrecte dans le paramètre cchBufferMax. Par exemple, si lpBuffer pointe vers une mémoire tampon szBuffer déclarée comme TCHAR szBuffer[100], la tailleof(szBuffer) donne la taille de la mémoire tampon en octets, ce qui peut entraîner un dépassement de mémoire tampon pour la version Unicode de la fonction. Les situations de dépassement de mémoire tampon sont la cause de nombreux problèmes de sécurité dans les applications. Dans ce cas, l’utilisation de sizeof(szBuffer)/sizeof(TCHAR) ou de sizeof(szBuffer)/sizeof(szBuffer[0]) donne la taille appropriée de la mémoire tampon.

Exemples

Pour obtenir un exemple, consultez Création d’une fenêtre enfant

Note

L’en-tête winuser.h définit LoadString en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winuser.h (include Windows.h)
bibliothèque User32.lib
DLL User32.dll

Voir aussi

conceptuelle

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

loadIcon

LoadMenu

LoadMenuIndirect

autres ressources

de référence

chaînes