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 terminante 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 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. Devono essere almeno caratteri cchBufferMax di dimensioni.
[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. Questo parametro non può essere zero.
Valore restituito
Tipo: int
Se la funzione ha esito positivo, il valore restituito è il numero di caratteri copiati nel buffer, non incluso il carattere null terminante.
Se la risorsa stringa non esiste, il valore restituito è zero.
Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
A differenza della funzione LoadStringW , la funzione LoadStringA non supporta il passaggio di un valore pari a zero per cchBufferMax. In questo modo la memoria verrà danneggiata.
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 cchBufferMax . Ad esempio, se lpBuffer punta a un buffer szBuffer dichiarato comeTCHAR 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
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
Altre risorse
Riferimento