/char-Schalter
Mit dem / char-Schalter wird sichergestellt, dass der MIDL-Compiler und der C-Compiler für alle char - und small-Typen ordnungsgemäß zusammenarbeiten.
midl /char { signed | unsigned | ascii7 }
Optionen wechseln
-
Unterzeichnet
-
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 zeichenloses Zeichen generiert.
-
Unsigned
-
Gibt an, dass der C-Compiler-Standardtyp für char nicht signiert ist. Alle Verwendungen von small , die nicht von einer Zeichenspezifikation begleitet werden, werden als klein signiert generiert.
-
ascii7
-
Gibt an, dass alle Zeichenwerte ohne ein bestimmtes Zeichen Schlüsselwort (keyword) an die generierten Dateien übergeben werden sollen. Alle Verwendungen von small , die nicht von einer Vorzeichenspezifikation begleitet werden, werden als klein generiert.
Bemerkungen
Per Definition ist MIDL-Zeichen nicht signiert. "Klein" wird in Bezug auf char (#define kleines Zeichen) definiert, und MIDL small ist signiert.
Der /char-Schalter weist den MIDL-Compiler an, explizite signierte oder nicht signierte Deklarationen in den generierten Dateien anzugeben, wenn die C-Compiler-Zeichendeklaration 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, wo char-Daten im Quellcode angegeben sind, ein signiertes Zeichen. Der Stubquellcode, den der MIDL-Compiler generiert, behandelt alle Char-Daten als zeichenloses Zeichen. Wenn der MIDL-Compiler einfach alle char-Daten in der IDL-Datei als char-Daten in den Stubs generiert hat, würden Compiler, die ein signiertes Char für char-Daten verwenden, einen Konflikt im Stubquellcode verursachen.
Der Zweck der Befehlszeilenoption /char besteht darin, diese potenziellen Konflikte zu beheben. Alle daten, die als char in der IDL-Datei als unsigniertes zeichen im Stubquellcode angegeben sind, werden beibehalten. Außerdem werden kleine Daten als signiert verwaltet.
In der folgenden Tabelle sind die generierten Typen zusammengefasst.
midl /char-Option | Generierter char-Typ | Generierter kleiner Typ |
---|---|---|
midl /char signiert | unsigned char | small |
midl /char ohne Vorzeichen | char | klein signiert |
midl /char ascii7 | char | small |
Die Option /char mit Vorzeichen gibt an, dass der C-Compiler char und der kleine Typ signiert sind. Um dem MIDL-Standard für char zu entsprechen, muss der MIDL-Compiler alle Verwendungen von char , die nicht von einer Zeichenspezifikation begleitet werden, in unsigniertes zeichen konvertieren. Der kleine Typ wird nicht geändert, da dieser C-Compiler-Standard dem MIDL-Standardwert für small entspricht.
Die Option /char ohne Vorzeichen gibt an, dass der C-Compiler char-Typ nicht signiert ist. Der MIDL-Compiler konvertiert alle Verwendungen von small, die nicht von einer Zeichenspezifikation begleitet werden, in klein signiert.
Die Option ascii7 gibt an, dass char-Typen keine explizite Zeichenspezifikation hinzugefügt wird. Der Typ small wird als klein generiert.
Um Verwechslungen zu vermeiden, sollten Sie in der IDL-Datei wann immer möglich explizite Zeichenspezifikationen für char - und small-Typen verwenden. Beachten Sie, dass die Verwendung explizit signierter Zeichentypen in Ihrer IDL-Datei von DCE IDL nicht unterstützt wird. Daher ist dieses Feature nicht verfügbar, wenn Sie mit dem MIDL /osf-Schalter kompilieren.
Weitere Informationen zu /char finden Sie unter small.
Beispiele
midl /char signierter Dateiname.idl
midl /char ohne Vorzeichen dateiname.idl
midl /char ascii7 filename.idl
Weitere Informationen