/char switch
L'opzione /char consente di garantire che il compilatore MIDL e il compilatore C funzionino correttamente per tutti i tipi char e small .
midl /char { signed | unsigned | ascii7 }
-
Firmato
-
Specifica che il tipo di compilatore C predefinito per char è firmato. Tutte le occorrenze di char non accompagnate da una specifica di segno vengono generate come caratteri senza segno.
-
Unsigned
-
Specifica che il tipo di compilatore C predefinito per char non è firmato. Tutti gli usi di piccole dimensioni non accompagnati da una specifica di firma vengono generati come piccoli.
-
ASCII7
-
Specifica che tutti i valori char devono essere passati nei file generati senza una parola chiave di firma specifica. Tutti gli usi di piccole dimensioni non accompagnati da una specifica di segno vengono generati come piccoli.
Per definizione, midL char non è firmato. "Small" è definito in termini di char (#define piccolo char ) e MIDL small è firmato.
L'opzione /char indirizza il compilatore MIDL per specificare dichiarazioni esplicite firmate o senza segno nei file generati quando la dichiarazione di firma del compilatore C è in conflitto con il valore predefinito MIDL per tale tipo.
Tenere presente che il compilatore MIDL genera gli stub come codice sorgente C, che è necessario compilare come parte dei programmi client e server. Alcuni compilatori usano i dati char firmati ovunque vengano specificati nel codice sorgente. Il codice sorgente stub generato dal compilatore MIDL considera tutti i dati char come caratteri non firmati. Se il compilatore MIDL ha semplicemente generato tutti i dati char nel file IDL come dati char negli stub, i compilatori che usano un carattere firmato per i dati char causerebbero un conflitto nel codice sorgente stub.
Lo scopo dell'opzione della riga di comando /char consiste nel risolvere questi potenziali conflitti. Mantiene tutti i dati specificati come char nel file IDL come caratteri non firmati nel codice sorgente stub. Gestisce anche dati di piccole dimensioni come firmato.
Nella tabella seguente vengono riepilogati i tipi generati.
opzione midl /char | Tipo char generato | Tipo di piccole dimensioni generato |
---|---|---|
midl /char firmato | unsigned char | small |
midl /char unsigned | char | firmato piccolo |
midl /char ascii7 | char | small |
L'opzione /char con segno indica che il carattere del compilatore C e i tipi di piccole dimensioni sono firmati. Per corrispondere al valore predefinito MIDL per char, il compilatore MIDL deve convertire tutti gli usi di char non accompagnati da una specifica di segno in char senza segno. Il tipo di piccole dimensioni non viene modificato perché il valore predefinito del compilatore C corrisponde al valore predefinito MIDL per piccole dimensioni.
L'opzione /char unsigned indica che il tipo char del compilatore C non è firmato. Il compilatore MIDL converte tutti gli usi di piccole dimensioni non accompagnati da una specifica di segno per la firma di piccole dimensioni.
L'opzione ascii7 indica che non viene aggiunta alcuna specifica di segno esplicito ai tipi char . Il tipo piccolo viene generato come piccolo.
Per evitare confusione, è consigliabile usare specifiche di firma esplicite per i tipi char e small ogni volta che è possibile nel file IDL. Si noti che l'uso di tipi char firmati in modo esplicito nel file IDL non è supportato da DCE IDL. Pertanto, questa funzionalità non è disponibile quando si compila con l'opzione MIDL /osf .
Per altre informazioni correlate a /char, vedere small.
midl /char signed filename.idl
midl /char unsigned filename.idl
midl /char ascii7 filename.idl