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 terminante 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 in un'istanza del modulo il cui file eseguibile contiene la risorsa stringa. Per ottenere l'handle all'applicazione stessa, chiamare la funzione GetModuleHandle con NULL.

[in] uID

Tipo: UINT

Identificatore della stringa da caricare.

[out] lpBuffer

Tipo: LPTSTR

Buffer da ricevere la stringa (se cchBufferMax è diverso da zero) o un puntatore di sola lettura alla risorsa stringa stessa (se cchBufferMax è zero). Deve essere di 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 specificati. 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 terminante.
  • Numero di caratteri nella risorsa stringa a cui lpBuffer punta (se cchBufferMax è zero). La risorsa stringa non è garantita la chiusura null nella tabella delle risorse del modulo e è possibile usare questo valore per determinare dove termina la risorsa stringa.
  • Zero se la risorsa stringa non esiste.

Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Se si passa 0 a cchBufferMax per restituire un puntatore di sola lettura alla risorsa stringa nel parametro lpBuffer , utilizzare il numero di caratteri nel valore restituito per determinare la lunghezza della risorsa stringa. Le risorse stringa non sono garantite che vengano terminate null nella tabella delle risorse del modulo. Le tabelle delle risorse possono tuttavia contenere caratteri Null. Le risorse stringa vengono archiviate in blocchi di 16 stringhe e tutti gli 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 errato include la specifica delle dimensioni sbagliate nel parametro nBufferMax . Ad esempio, se lpBuffer punta a un buffer szBuffer dichiarato come TCHAR szBuffer[100], le dimensioni di szBuffer offrono le dimensioni del buffer in byte, che potrebbero 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 sizeof(szBuffer)/sizeof(TCHAR) o sizeof(szBuffer)/sizeof(szBuffer[0]) la dimensione appropriata del buffer.

Esempio

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 di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll

Vedi anche

Informazioni concettuali

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadMenuIndirect

Altre risorse

Riferimento

Stringhe