Condividi tramite


Funzione LoadStringA (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 LoadStringA(
  [in, optional] HINSTANCE hInstance,
  [in]           UINT      uID,
  [out]          LPSTR     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 con NULL.

[in] uID

Tipo: UINT

Identificatore della stringa da caricare.

[out] lpBuffer

Tipo: LPTSTR

Buffer da ricevere la stringa. Deve essere almeno dimensioni di cchBufferMax caratteri.

[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. Questo parametro potrebbe non essere zero.

Valore restituito

Tipo: int

Se la funzione ha esito positivo, il valore restituito corrisponde al numero di caratteri copiati nel buffer, senza includere il carattere null di terminazione.

Se la risorsa stringa non esiste, il valore restituito è zero.

Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

A differenza della funzione LoadStringW , la funzione LoadStringA non supporta il passaggio di un valore pari a zero per cchBufferMax. In questo modo verrà danneggiata la memoria.

osservazioni sulla sicurezza

L'uso di questa funzione in modo errato può compromettere la sicurezza dell'applicazione. Uso non corretto include la specifica delle dimensioni errate nel parametro cchBufferMax. Ad esempio, se lpBuffer punta a un buffer szBuffer dichiarato come TCHAR 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

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

loadIcon

LoadMenu

LoadMenuIndirect

altre risorse

riferimento

stringhe