Funzione WriteConsole

Scrive una stringa di caratteri in un buffer dello schermo della console iniziando dalla posizione corrente del cursore.

Sintassi

BOOL WINAPI WriteConsole(
  _In_             HANDLE  hConsoleOutput,
  _In_       const VOID    *lpBuffer,
  _In_             DWORD   nNumberOfCharsToWrite,
  _Out_opt_        LPDWORD lpNumberOfCharsWritten,
  _Reserved_       LPVOID  lpReserved
);

Parametri

hConsoleOutput [in]
Handle per il buffer dello schermo della console. L'handle deve avere il diritto di accesso GENERIC_WRITE . Per altre informazioni, vedere Sicurezza dei buffer della console e diritti di accesso.

lpBuffer [in]
Puntatore a un buffer che contiene caratteri da scrivere nel buffer dello schermo della console. È previsto che sia una matrice di char per WriteConsoleA o wchar_t per WriteConsoleW.

nNumberOfCharsToWrite [in]
Numero di caratteri da scrivere. Se la dimensione totale del numero specificato di caratteri supera l'heap disponibile, la funzione ha esito negativo con ERROR_NOT_ENOUGH_MEMORY.

lpNumberOfCharsWritten [out, facoltativo]
Puntatore a una variabile che riceve il numero di caratteri effettivamente scritti.

lpReserved riservato; deve essere NULL.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Osservazioni:

La funzione WriteConsole scrive i caratteri nel buffer dello schermo della console in corrispondenza della posizione corrente del cursore. La posizione del cursore viene spostata man mano che i caratteri vengono scritti. La funzione SetConsoleCursorPosition imposta la posizione corrente del cursore.

I caratteri vengono scritti usando gli attributi del colore di primo piano e di sfondo associati al buffer dello schermo della console. La funzione SetConsoleTextAttribute modifica questi colori. Per determinare gli attributi di colore correnti e la posizione corrente del cursore, usare GetConsoleScreenBufferInfo.

Tutte le modalità di input che influiscono sul comportamento della funzione WriteFile hanno lo stesso effetto su WriteConsole. Per recuperare e impostare le modalità di output di un buffer dello schermo della console, usare le funzioni GetConsoleMode e SetConsoleMode.

Questa funzione usa i caratteri Unicode o i caratteri a 8 bit dalla tabella codici corrente della console. Inizialmente il valore predefinito della tabella codici della console è la tabella codici OEM del sistema. Per modificare la tabella codici della console usare le funzioni SetConsoleCP o SetConsoleOutputCP. I consumer legacy possono anche usare i comandichcp o mode con cp select= ma non è consigliabile per il nuovo sviluppo.

WriteConsole ha esito negativo se viene usata con un handle standard che viene reindirizzato a un file. Se un'applicazione elabora l'output multilingue che può essere reindirizzato, determinare se l'handle di output è un handle della console (un metodo consiste nel chiamare la funzione GetConsoleMode e verificare se l'operazione ha esito positivo). Se l'handle è un handle della console, chiamare WriteConsole. Se l'handle non è un handle della console, l'output viene reindirizzato ed è necessario chiamare WriteFile per eseguire le funzioni di I/O. Assicurarsi di anteporre un prefisso a un file di testo normale Unicode con un indicatore dell'ordine dei byte. Per altre informazioni, vedere Using Byte Order Marks (Uso degli indicatori dell'ordine dei byte).

Sebbene un'applicazione possa usare WriteConsole in modalità ANSI per scrivere caratteri ANSI, le console non supportano le sequenze di "escape ANSI" o "terminale virtuale", a meno che non siano abilitate. Per altre informazioni e per l'applicabilità della versione del sistema operativo, vedere Sequenze del terminale virtuale della console.

Quando le sequenze di escape del terminale virtuale non sono abilitate, le funzioni della console possono fornire funzionalità equivalenti. Per altre informazioni, vedere SetCursorPos, SetConsoleTextAttribute e GetConsoleCursorInfo.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione ConsoleApi.h (tramite WinCon.h, con Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll
Nomi Unicode e ANSI WriteConsoleW (Unicode) e WriteConsoleA (ANSI)

Vedi anche

Funzioni della console

GetConsoleCursorInfo

GetConsoleMode

GetConsoleScreenBufferInfo

Metodi di input e output

ReadConsole

SetConsoleCP

SetConsoleCursorPosition

SetConsoleMode

SetConsoleOutputCP

SetConsoleTextAttribute

SetCursorPos

WriteFile