/char-Schalter

Mit dem Schalter /char können Sie sicherstellen, dass der MIDL-Compiler und der C-Compiler für alle char- und kleinen Typen ordnungsgemäß zusammenarbeiten.

midl /char { signed | unsigned | ascii7 }

Switch-Optionen

signed**

Gibt an, dass der C-Compiler-Standardtyp für char signiert ist. Alle Vorkommen von char, die nicht von einer Vorzeichenspezifikation begleitet werden, werden als zeichen ohne Vorzeichen generiert.

unsigned**

Gibt an, dass der C-Compiler-Standardtyp für char nicht signiert ist. Alle Verwendungen von "small" werden nicht zusammen mit einer Vorzeichenspezifikation als klein mit Vorzeichen generiert.

ascii7**

Gibt an, dass alle char-Werte ohne ein bestimmtes Sign-Schlüsselwort an die generierten Dateien übergeben werden sollen. Alle Verwendungen von "small" werden nicht zusammen mit einer Vorzeichenspezifikation als klein generiert.

Bemerkungen

Definitionsgemäß ist MIDL char unsigned. "Small" ist in Bezug auf char definiert ( # small char definieren), und MIDL small wird signiert.

Der Schalter /char weist den MIDL-Compiler an, explizite signierte oder nicht signierte Deklarationen in den generierten Dateien anzugeben, wenn die C-Compiler-Signdeklaration mit dem MIDL-Standard für diesen Typ in Konflikt steht.

Denken Sie daran, dass der MIDL-Compiler die Stubs als C-Quellcode generiert, den Sie als Teil Ihrer Client- und Serverprogramme kompilieren müssen. Einige Compiler verwenden überall dort, wo char-Daten im Quellcode angegeben werden, ein zeichensigniertes Zeichen. Der Stub-Quellcode, den der MIDL-Compiler generiert, behandelt alle char-Daten als char ohne Vorzeichen. Wenn der MIDL-Compiler einfach alle char-Daten in der IDL-Datei als char-Daten in den Stubs generiert, würden Compiler, die ein signiertes zeichen für char-Daten verwenden, einen Konflikt im Stub-Quellcode verursachen.

Der Befehlszeilenschalter /char dient dazu, diese potenziellen Konflikte zu lösen. Alle als char in der IDL-Datei angegebenen Daten werden im Stub-Quellcode als unsigned char beibehalten. Außerdem werden kleine Daten als signiert verwaltet.

In der folgenden Tabelle werden die generierten Typen zusammengefasst.

midl /char-Option Generierter char-Typ Generierter kleiner Typ
midl /char signed unsigned char small
midl /char unsigned char klein signiert
midl /char ascii7 char small

Die Option /char signed gibt an, dass der C-Compiler char und kleine Typen signiert sind. Um dem MIDL-Standardwert für char zu entsprechen, muss der MIDL-Compiler alle Verwendungen von char, die nicht von einer Vorzeichenspezifikation begleitet werden, in unsigned char konvertieren. Der kleine Typ wird nicht geändert, da dieser C-Compiler-Standardwert dem MIDL-Standard für kleine entspricht.

Die Option /char unsigned gibt an, dass der C-Compiler char-Typ unsigned ist. Der MIDL-Compiler konvertiert alle Verwendungen von small nicht zusammen mit einer Vorzeichenspezifikation in einen kleinen mit Vorzeichen.

Die Ascii7-Option gibt an, dass char-Typen keine explizite Vorzeichenspezifikation hinzugefügt wird. Der Typ small wird als kleiner generiert.

Um Verwirrung zu vermeiden, sollten Sie nach Möglichkeit explizite Vorzeichenspezifikationen für char und kleine Typen in der IDL-Datei verwenden. Beachten Sie, dass die Verwendung explizit signierter char-Typen in Ihrer IDL-Datei von DCE IDL nicht unterstützt wird. Daher ist dieses Feature nicht verfügbar, wenn Sie mit dem MIDL-Switch /osf kompilieren.

Weitere Informationen zu /char finden Sie unter small.

Beispiele

midl /char signed filename.idl

midl /char unsigned filename.idl

midl /char ascii7 filename.idl

Weitere Informationen

char

Allgemeine MIDL-Befehlszeilensyntax

/osf

klein