LoadStringW, 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 LoadStringW(
[in, optional] HINSTANCE hInstance,
[in] UINT uID,
[out] LPWSTR 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
[in] uID
Type : uiNT
Identificateur de la chaîne à charger.
[out] lpBuffer
Type : LPTSTR
Mémoire tampon pour recevoir la chaîne (si cchBufferMax n’est pas zéro) ou un pointeur en lecture seule vers la ressource de chaîne elle-même (si cchBufferMax est égal à zéro). Doit être de longueur suffisante pour contenir un pointeur (8 octets).
[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é. Si ce paramètre est 0, lpBuffer reçoit un pointeur en lecture seule vers la ressource de chaîne elle-même.
Valeur de retour
Type : int
Si la fonction réussit, la valeur de retour est l’une des suivantes :
- Nombre de caractères copiés dans la mémoire tampon (si cchBufferMax n’est pas zéro), sans inclure le caractère null de fin.
- Le nombre de caractères dans la ressource de chaîne qui lpBuffer pointe vers (si cchBufferMax est égal à zéro). La ressource de chaîne n’est pas garantie d’être terminée par null dans la table de ressources du module, et vous pouvez utiliser cette valeur pour déterminer où se termine la ressource de chaîne.
- Zéro si la ressource de chaîne n’existe pas.
Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Remarques
Si vous passez 0 à cchBufferMax pour renvoyer un pointeur en lecture seule vers la ressource de chaîne dans le paramètre lpBuffer, utilisez le nombre de caractères dans la valeur de retour pour déterminer la longueur de la ressource de chaîne. Les ressources de chaîne ne sont pas garanties d’être terminées par null dans la table de ressources du module. Toutefois, les tables de ressources peuvent contenir des caractères Null. Les ressources de chaîne sont stockées dans des blocs de 16 chaînes, et les emplacements vides d’un bloc sont indiqués par des caractères Null.
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 nBufferMaxTCHAR 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
autres ressources
de référence