Funzione LoadStringW (winuser.h)
Carica una risorsa stringa dal file eseguibile associato a un modulo specificato e copia la stringa in un buffer con un carattere Null di terminazione o restituisce un puntatore di sola lettura alla risorsa stringa stessa.
Sintassi
int LoadStringW(
[in, optional] HINSTANCE hInstance,
[in] UINT uID,
[out] LPWSTR lpBuffer,
[in] int cchBufferMax
);
Parametri
[in, optional] hInstance
Tipo: HINSTANCE
Handle di un'istanza del modulo il cui file eseguibile contiene la risorsa stringa. Per ottenere l'handle all'applicazione stessa, chiamare la funzione GetModuleHandle
[in] uID
Tipo: UINT
Identificatore della stringa da caricare.
[out] lpBuffer
Tipo: LPTSTR
Buffer per ricevere la stringa (se cchBufferMax è diverso da zero) o un puntatore di sola lettura alla risorsa stringa stessa (se cchBufferMax è zero). Deve avere una lunghezza sufficiente per contenere un puntatore (8 byte).
[in] cchBufferMax
Tipo: int
Dimensioni del buffer, in caratteri. La stringa viene troncata e terminata con null se è più lunga del numero di caratteri specificato. Se questo parametro è 0, lpBuffer riceve un puntatore di sola lettura alla risorsa stringa stessa.
Valore restituito
Tipo: int
Se la funzione ha esito positivo, il valore restituito è uno dei seguenti:
- Numero di caratteri copiati nel buffer (se cchBufferMax è diverso da zero), non incluso il carattere Null di terminazione.
- Numero di caratteri nella risorsa stringa a cui lpBuffer punta (se cchBufferMax è zero). Non è garantito che la risorsa stringa venga terminata con null nella tabella delle risorse del modulo ed è possibile usare questo valore per determinare dove termina la risorsa stringa.
- Zero se la risorsa stringa non esiste.
Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
Se si passa 0 a cchBufferMax per restituire un puntatore di sola lettura alla risorsa stringa nel parametro lpBuffer, usare il numero di caratteri nel valore restituito per determinare la lunghezza della risorsa stringa. Non è garantito che le risorse stringa vengano terminate con null nella tabella delle risorse del modulo. Tuttavia, le tabelle delle risorse possono contenere caratteri Null. Le risorse stringa vengono archiviate in blocchi di 16 stringhe ed eventuali slot vuoti all'interno di un blocco sono indicati da caratteri Null.
osservazioni sulla sicurezza
L'uso di questa funzione in modo errato può compromettere la sicurezza dell'applicazione. L'uso non corretto include la specifica delle dimensioni errate nel parametro nBufferMaxTCHAR szBuffer[100]
, sizeof(szBuffer) restituisce le dimensioni del buffer in byte, il che potrebbe causare un overflow del buffer per la versione Unicode della funzione. Le situazioni di overflow del buffer sono la causa di molti problemi di sicurezza nelle applicazioni. In questo caso, l'uso di sizeof(szBuffer)/sizeof(TCHAR)
o sizeof(szBuffer)/sizeof(szBuffer[0])
darebbe le dimensioni appropriate del buffer.
Esempi
Per un esempio, vedere Creazione di una finestra figlio
Nota
L'intestazione winuser.h definisce LoadString come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winuser.h (include Windows.h) |
libreria |
User32.lib |
dll | User32.dll |
Vedere anche
concettuale
altre risorse
riferimento