Fonction LoadStringA (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 retourne 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 d’un 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 pour recevoir la chaîne. Doit avoir au moins la taille des caractères cchBufferMax .
[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 plus longue que le nombre de caractères spécifié. Ce paramètre ne peut pas être égal à zéro.
Valeur retournée
Type : int
Si la fonction réussit, la valeur de retour correspond au 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 zéro.
Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Contrairement à la fonction LoadStringW , la fonction LoadStringA ne prend pas en charge la transmission d’une valeur zéro pour cchBufferMax. Cela endommage la mémoire.
Remarques sur la sécurité
L’utilisation incorrecte de cette fonction peut compromettre la sécurité de votre application. Une utilisation incorrecte inclut la spécification de la taille incorrecte dans le paramètre cchBufferMax . Par exemple, si lpBuffer pointe vers un tampon szBuffer qui est déclaré commeTCHAR szBuffer[100]
, sizeof(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 à l’origine de nombreux problèmes de sécurité dans les applications. Dans ce cas, l’utilisation sizeof(szBuffer)/sizeof(TCHAR)
ou sizeof(szBuffer)/sizeof(szBuffer[0])
donnerait la taille appropriée de la mémoire tampon.
Exemples
Pour obtenir un exemple, consultez Création d’une fenêtre enfant
Notes
L’en-tête winuser.h définit LoadString comme un 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.
Configuration requise
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |
Voir aussi
Conceptuel
Autres ressources
Référence