Condividi tramite


Stringhe di formato

Una stringa di formato è un token interpretato compreso dal motore NDR. Le stringhe di formato vengono spesso definite mop; in questa documentazione viene utilizzata la stringa di formato del termine.

Per essere più precisi, un carattere di formato è un singolo token interpretabile (atomico). Ogni carattere di formato è di un byte di dimensioni. Una stringa di formato è una sequenza di caratteri di formato o caratteri e dati numerici. Il termine descrittore viene usato anche per la denominazione di sequenze comuni; Ad esempio, una stringa di formato di parametro o un descrittore di parametro è una stringa di formato usata per descrivere un parametro di una routine.

I caratteri di formato hanno nomi simbolici allusori come FC_LONG o FC_STRUCT. Tutti i caratteri stringa di formato usati da MIDL e il motore NDR sono definiti nel file Ndrtypes.h.

Formattare tabelle di stringhe

Due tabelle di stringhe di formato primario vengono utilizzate dal motore: la tabella di stringhe di formato routine, __MIDL_ProcFormatString, che mantiene i descrittori di routine; e la tabella stringa di formato del tipo, __MIDL_TypeFormatString, che mantiene i descrittori del tipo di dati. Il compilatore genera entrambi i file stub principali (*_c.c, *_s.c, *_p.c). La tabella di stringhe di formato routine viene usata principalmente da vari interpreti, ma viene usata anche per la conversione del buffer indipendentemente dalla modalità del compilatore. La tabella stringa di formato del tipo viene usata quando si chiama il motore NDR principale per indicare tipi di dati specifici su cui lavorare.

Notazione stringa di formato

La notazione usata in questo documento segue le linee guida comuni per la descrizione della programmazione, con una barra ( | ) usata per indicare costrutti alternativi e parentesi quadre ( [ ] ) usati per indicare gli elementi facoltativi. Le stringhe di formato vengono spesso sovrapposte per la leggibilità (responsabilità). In questo documento fc indica un singolo carattere di formato. I caratteri di formato vengono presentati in tutte le MAIUSC, usando i nomi simbolici effettivi. Altri campi arbitrari sono rappresentati da un nome e da una dimensione.

Le parentesi angolari ( <> ) vengono utilizzate per indicare le dimensioni dei descrittori. Vengono utilizzate le convenzioni illustrate nella tabella seguente.

Notation Significato
< N> La dimensione del descrittore è di n byte.
<> Le dimensioni del descrittore variano.
{<>}* Il descrittore viene ripetuto qualsiasi numero di volte (0,1,2 ...).

 

I caratteri di formato seguenti hanno un significato speciale.

Carattere Significato
FC_END Indica la fine di alcune stringhe di formato.
FC_PAD Carattere di riempimento non interpretato.