Freigeben über


Compilerfehler

Die folgenden Fehlermeldungen werden während der MIDL-Kompilierung generiert:

Rückgabecode Beschreibung
MIDL2000
muss /c_ext für abstrakte Deklaratoren angeben
Abstrakte Deklaratoren stellen eine Microsoft-Erweiterung für RPC dar und sind nicht in DCE RPC definiert. Wenn Ihre Datei abstrakte Deklaratoren enthält, können Sie daher nicht mit dem Schalter /osf kompilieren, was eine strikte DCE-Kompatibilität erzwingt. MIDL-Versionen 3.0 und höher verwenden den Schalter /c_ext als Standard; der Schalter /osf schaltet den Schalter /c_ext aus. Informationen zu abstrakten Deklaratoren finden Sie unter Der ACF-Text.
MIDL2001
Die Instanziierung von Daten ist illegal; Sie müssen "extern" oder "statisch" verwenden.
Deklaration und Initialisierung in der IDL-Datei sind nicht mit DCE RPC kompatibel. Dieses Feature ist eine Microsoft-Erweiterung, die beim Kompilieren im DCE-Kompatibilitätsmodus (/osf) nicht verfügbar ist.
MIDL2002
Compilerstapelüberlauf
Beim Verarbeiten der IDL-Datei war der Stapelspeicher für den Compiler nicht mehr verfügbar. Dieses Problem kann auftreten, wenn der Compiler eine komplexe Deklaration oder einen komplexen Ausdruck verarbeitet. Um das Problem zu lösen, vereinfachen Sie die komplexe Deklaration oder den Ausdruck.
MIDL2003
Neudefinition
Diese Fehlermeldung kann unter folgenden Umständen angezeigt werden: Ein Typ wurde neu definiert; ein Verfahrensprototyp wurde neu definiert; ein Mitglied einer Struktur oder Vereinigung desselben Namens ist bereits vorhanden; Im Prototyp ist bereits ein Parameter mit demselben Namen vorhanden.
MIDL2004
[auto_handle]-Bindung wird verwendet.
Als Standardhandletyp wurde kein Handle-Typ definiert. Der Compiler geht davon aus, dass ein automatisches Handle als Bindungshandle für die angegebene Prozedur verwendet wird.
MIDL2005
Nicht genügend Arbeitsspeicher
Während der Kompilierung ging dem Compiler der Arbeitsspeicher aus. Reduzieren Sie die Größe oder Komplexität der IDL-Datei, oder weisen Sie dem Prozess mehr Arbeitsspeicher zu.
MIDL2006
rekursive Definition
Eine Struktur oder Union wurde rekursiv definiert. Dieser Fehler kann auftreten, wenn eine Zeigerspezifikation in einer geschachtelten Strukturdefinition übersehen wird.
MIDL2007
Import ignoriert; Datei bereits importiert
Das Importieren einer IDL-Datei ist ein idempotent-Vorgang. Es mehr als einmal zu verwenden, hat keine Auswirkung. Alle außer dem ersten Importvorgang werden ignoriert.
MIDL2008
Sparse-Enumerationen erfordern /c_ext oder /ms_ext
Das Zuweisen von Werten zu Enumerationskonstanten ist nicht mit DCE RPC kompatibel. Wenn Sie die Microsoft-Erweiterungen für MIDL verwenden möchten, die das Zuweisen von Werten zu Enumerationskonstanten ermöglichen, können Sie nicht mit dem / osf-Switch kompilieren, was eine strikte DCE-Kompatibilität erzwingt. MIDL-Versionen 3.0 und höher verwenden die Switches /c_ext und /ms_ext als Standard; der /osf-Schalter deaktiviert diese Erweiterungsschalter.
MIDL2009
undefiniertes Symbol
Ein undefiniertes Symbol wurde in einem Ausdruck verwendet. Dieser Fehler kann auftreten, wenn Sie einen nicht definierten aufgezählten Wert verwenden.
MIDL2010
Typ, der in der ACF-Datei verwendet wird, die nicht in der IDL-Datei definiert ist
Es wird ein nicht definierter Typ verwendet.
MIDL2011
nicht aufgelöste Typdeklaration
Der im Feld "Zusätzliche Fehlerinformationen" gemeldete Typ wurde an anderer Stelle in der IDL-Datei nicht definiert.
MIDL2012
Die Verwendung von Breitzeichenkonstanten erfordert /ms_ext oder /c_ext
Breitzeichenkonstanten sind eine Microsoft-Erweiterung für DCE IDL. Um den Datentyp wchar_t zu verwenden, können Sie nicht mit dem / osf-Schalter kompilieren, der die MIDL-Compilerstandardoptionen /ms_ext und /c_ext außer Kraft setzt.
MIDL2013
Die Verwendung von breit angelegten Zeichenfolgen erfordert /ms_ext oder /c_ext
Breitzeichenfolgenkonstanten sind eine Microsoft-Erweiterung für DCE IDL. Um den Datentyp wchar_t zu verwenden, können Sie nicht mit dem / osf-Schalter kompilieren, der die MIDL-Compilerstandardoptionen /ms_ext und /c_ext außer Kraft setzt.
MIDL2014
Inkonsistente Neudefinition des Typs wchar_t
Der Typ wchar_t wurde als Typ neu definiert, der nicht gleichbedeutend mit unsigned short DOS* ist.
MIDL2015
importlib nicht gefunden
Der Compiler konnte die von der [ importlib]-Anweisung angegebene Typbibliothek nicht finden. Überprüfen Sie, ob pfad und Name der Bibliothek korrekt sind.
MIDL2016
zwei Bibliotheksblöcke
Zwei Bibliotheksblöcke (auch mit unterschiedlichen Namen) in derselben Quelldatei sind unzulässig. Kombinieren Sie alle Elemente in einem einzelnen Bibliotheksblock.
MIDL2017
die dispinterface-Anweisung erfordert eine Definition für IDispatch
Dieser Fehler tritt im Allgemeinen auf, wenn die Dateien Stdole2.tlb oder Oaidl.idl nicht importiert werden.
MIDL2018
Fehler beim Zugriff auf die Typbibliothek
Der Compiler konnte die angegebene Typbibliothek nicht finden. Überprüfen Sie, ob Sie den Pfad richtig angegeben haben.
MIDL2019
Fehler beim Zugreifen auf Typinformationen
Die importierte Typbibliothek ist beschädigt, ungültig oder nur teilweise erstellt.
MIDL2020
Fehler beim Generieren der Typbibliothek
Die Typbibliothek konnte nicht generiert werden. Eine mögliche Ursache für diesen Fehler ist die Angabe eines Pfads zur IDL-Datei, der länger als 126 Zeichen ist. Oleaut32.dll unterstützt keine Pfadnamen, die länger als 126 Zeichen sind.
MIDL2021
duplizierte ID
Anwendungen verwenden die id-Anweisung in IDL-Dateien, um eine DISPID für Memberfunktionen anzugeben. Die Memberfunktionen können entweder Eigenschaften oder Methoden von Schnittstellen oder Dispinterfaces sein. Dieser Fehler gibt an, dass die IDL-Datei die gleiche Bezeichnernummer für zwei Methoden oder Eigenschaften angibt.
MIDL2022
illegal oder fehlender Wert für das Eintragsattribut
Das Argument für das Entry-Attribut kann entweder eine Zeichenfolge sein, die einen benannten Einstiegspunkt angibt, oder eine Ordnungszahl, die den Einstiegspunkt definiert. Dieses Argument fehlt oder enthält einen ungültigen Wert.
MIDL2023
Bei der Fehlerwiederherstellung wird davon ausgegangen
Der MIDL-Compiler hat in der IDL-Datei unzulässige Zeichen gefunden.
MIDL2024
Fehlerwiederherstellung verwirft
Der MIDL-Compiler hat in der IDL-Datei unzulässige Zeichen gefunden. Die unzulässigen Zeichen werden ignoriert.
MIDL2025
Syntaxfehler
Der Compiler hat einen Syntaxfehler in der angegebenen Zeile erkannt.
MIDL2026
kann nach früheren Syntaxfehlern nicht wiederhergestellt werden. Abbrechen der Kompilierung
Der MIDL-Compiler versucht automatisch, nach Syntaxfehlern wiederherzustellen, indem er syntaktische Elemente hinzufügt oder entfernt. Diese Meldung gibt an, dass der Compiler trotz dieser Wiederherstellungsversuche zu viele Fehler erkannt hat. Korrigieren Sie die angegebenen Fehler, und kompilieren Sie sie erneut.
MIDL2027
Unbekannte Pragma-Option
Das angegebene C-Pragma wird in MIDL nicht unterstützt. Entfernen Sie das Pragma aus der IDL-Datei.
MIDL2028
Feature nicht implementiert
Das MIDL-Feature ist zwar Teil der Sprachdefinition, aber nicht in Microsoft RPC implementiert und wird vom MIDL-Compiler nicht unterstützt. Beispielsweise sind die folgenden Sprachfeatures nicht implementiert: Bitset, Pipe und der internationale Zeichentyp. Das Nicht implementierte Sprachfeature wird im zusätzlichen Fehlerinformationsfeld der Fehlermeldung angezeigt.
MIDL2029
Typ nicht implementiert
Der angegebene Datentyp ist zwar eine legale MIDL-Schlüsselwort (keyword), aber nicht in Microsoft RPC implementiert.
MIDL2030
Nichtzeiger, der in einem Dereferenzierungsvorgang verwendet wird
Ein Datentyp, der kein Zeiger ist, wurde Zeigervorgängen zugeordnet. Sie können nicht über den angegebenen Nichtzeiger auf das Objekt zugreifen.
MIDL2031
Ausdruck weist eine Division durch 0 (null) auf.
Der konstante Ausdruck enthält Division durch 0 (null).
MIDL2032
Ausdruck verwendet inkompatible Typen
Die linke und rechte Seite des Operators in einem Ausdruck weisen inkompatible Typen auf.
MIDL2033
nonarray-Ausdruck verwendet den Indexoperator.
Der Ausdruck verwendet den Arrayindizierungsvorgang für ein Datenelement, das nicht vom Arraytyp ist.
MIDL2034
Die linke Seite des Ausdrucks wird nicht als Struktur/Union/enum ausgewertet.
Der direkte oder indirekte Verweisoperator "." oder "->" wurde auf ein Datenobjekt angewendet, das keine Struktur, Union oder Enumeration ist. Sie können keinen direkten oder indirekten Verweis mit dem angegebenen Objekt abrufen.
MIDL2035
konstanter Ausdruck erwartet
In der Syntax wurde ein konstanter Ausdruck erwartet. Arraygrenzen erfordern beispielsweise einen konstanten Ausdruck. Der Compiler gibt diese Fehlermeldung aus, wenn das gebundene Array mit einer Variablen oder einem undefinierten Symbol definiert ist.
MIDL2036
Ausdruck kann zur Kompilierzeit nicht ausgewertet werden
Der Compiler kann einen Ausdruck zur Kompilierzeit nicht auswerten.
MIDL2037
Ausdruck nicht implementiert
Ein Feature, das in früheren Versionen des MIDL-Compilers unterstützt wurde, wird in der mit Microsoft RPC bereitgestellten Version des Compilers nicht unterstützt. Entfernen Sie den angegebenen Ausdruck.
MIDL2038
Kein [pointer_default]-Attribut angegeben, vorausgesetzt[ eindeutig] für alle nicht zugeordneten Zeiger
Der MIDL-Compiler bietet drei verschiedene Standardfälle für Zeiger, die keine Zeigerattribute haben. Funktionsparameter, bei denen es sich um Zeiger der obersten Ebene handelt, sind standardmäßig [ref]-Zeiger. In Strukturen eingebettete Zeiger und Zeiger auf andere Zeiger (keine Zeiger der obersten Ebene) entsprechen standardmäßig dem Typ, der vom [pointer_default]-Attribut angegeben wird. Wenn kein [pointer_default]-Attribut angegeben wird, werden diese Zeiger auf nicht oberster Ebene standardmäßig auf eindeutige Zeiger festgelegt. Diese Fehlermeldung gibt den letzten Fall an: Es wird kein [pointer_default]-Attribut angegeben, und es gibt mindestens einen Zeiger der obersten Ebene, der als eindeutiger Zeiger behandelt wird. Weitere Informationen finden Sie unter Standardzeigertypen.
MIDL2039
-Schnittstelle ist nicht automatisierungskonform
Die -Schnittstelle erfüllt nicht die Anforderungen für eine OLE-Automatisierungsschnittstelle. Überprüfen Sie, ob die Schnittstelle von IUnknown oder IDispatch abgeleitet ist.
MIDL2040
[out] Only-Parameter kann kein Zeiger auf eine geöffnete Struktur sein
Ein [out]-only-Parameter wurde als Zeiger auf eine Struktur verwendet, die als offene Struktur bezeichnet wird, deren übertragener Bereich und Größe zur Laufzeit bestimmt werden. Der Serverstub weiß nicht, wie viel Speicherplatz für eine offene Struktur zugewiesen werden soll. Verwenden Sie einen Zeiger auf einen Zeiger auf die geöffnete Struktur, und stellen Sie sicher, dass die Serveranwendung ausreichend Speicherplatz dafür zuweist.
MIDL2041
[out] Only-Parameter kann keine nicht verknürte Zeichenfolge sein
Ein Array mit dem Zeichenfolgen-Attribut wurde als [out]-only-Parameter ohne Größenangabe deklariert. Der Serverstub benötigt Größeninformationen, um Arbeitsspeicher für die Zeichenfolge zuzuweisen. Sie können das Zeichenfolgensattribut entfernen und das Attribut [size_is] hinzufügen, oder Sie können den Parameter in einen [in, out]-Parameter ändern.
MIDL2042
[out]-Parameter ist kein Zeiger
Alle [out]-Parameter müssen Zeiger im Einklang mit der Aufruf-by-Value-Konvention der Programmiersprache C sein. Der direktionale Parameter [out] gibt an, dass der Server einen Wert an den Client überträgt. Mit der Konvention für den Wertaufruf kann der Server Daten nur dann an den Client übertragen, wenn das Funktionsargument ein Zeiger ist.
MIDL2043
Open-Struktur kann kein Parameter sein
Eine geöffnete Struktur enthält ein konformes Array als letztes Element. Eine Struktur oder Union wird abgeschnitten, wenn das letzte Element dieser Struktur oder Union ein konformes Array ist.
MIDL2044
[out] Kontexthandle/generisches Handle muss als Zeiger auf diesen Handle-Typ angegeben werden.
Ein Kontexthandle oder ein benutzerdefinierter Handle-Parameter mit dem direktionalen Attribut [out] muss ein Zeiger auf einen Zeiger sein.
MIDL2045
Das Kontexthandle darf nicht von einem Typ abgeleitet werden, der über das Attribut [transmit_as] verfügt.
Kontexthandles müssen als Kontexthandles-Typen übertragen werden. Sie können nicht als andere Typen übertragen werden und können nicht von [transmit_is], [represent_as], [wire_marshal] oder [user_marshal] abgeleitet werden.
MIDL2046
Eine variable Anzahl von Argumenten für eine Remoteprozedur kann nicht angegeben werden.
Remoteprozeduraufrufe, die zur Kompilierzeit eine variable Anzahl von Argumenten angeben, sind nicht mit der DCE-RPC-Definition kompatibel. Sie können keine variable Anzahl von Argumenten in Microsoft RPC verwenden.
MIDL2047
Der benannte Parameter darf nicht "void" sein.
Ein Parameter mit dem Basistyp void wird mit einem Namen angegeben.
MIDL2048
parameter leitet sich von "coclass" oder "module" ab
Die coclass gibt ein Objekt der obersten Ebene an, das Schnittstellen und Dispinterfaces enthält. Er kann nicht als Parameter übergeben werden.
MIDL2049
nur der erste Parameter kann ein Bindungshandle sein. Sie müssen den Schalter "/ms_ext" angeben.
DCE RPC lässt nur den ersten Parameter als Bindungshandle zu. Durch die Kompilierung mit dem /osf-Schalter wird der Standardschalter /ms_ext deaktiviert, der mehrere Handle-Parameter unterstützt und Parameter an einer anderen Position als an der ganz linken Position behandelt.
MIDL2050
[comm_status] kann nicht sowohl für einen Parameter als auch für einen Rückgabetyp verwendet werden.
Sowohl die Prozedur als auch einer ihrer Parameter verfügen über das Attribut [comm_status]. Das [comm_status]-Attribut gibt an, dass jeweils nur ein Datenobjekt vom Typ error_status_t sein kann.
MIDL2051
[local]-Attribut für eine Prozedur erfordert /ms_ext
Das Attribut [local] ist eine Microsoft-Erweiterung für DCE IDL. Um dieses Attribut für eine Funktion zu verwenden, können Sie nicht mit dem Schalter /osf kompilieren. Der /osf-Schalter setzt die MIDL-Compiler-Standardoptionen /ms_ext und /c_ext außer Kraft.
MIDL2052
Eigenschaftsattribute dürfen nur mit Prozeduren verwendet werden.
Unsachgemäße Verwendung eines [propget-], [propput]-Attributs oder [propputref]-Attributs. Vergewissern Sie sich, dass Sie den Funktionsnamen der Eigenschaft richtig geschrieben haben und dass die Eigenschaft und die Funktion denselben Namen haben.
MIDL2053
eine Prozedur darf nicht mehr als ein Eigenschaftsattribut aufweisen
Für eine Funktion kann höchstens eines der Attribute [propget], [propput] oder [propputref] angegeben werden.
MIDL2054
Die Prozedur weist eine unzulässige Kombination von Vorgangsattributen auf.
Bestimmte Attribute können nicht in Verbindung mit anderen Attributen verwendet werden. Überprüfen Sie die MIDL-Sprachreferenz auf die genauen Anforderungen und die Syntax der Attribute, die in diesem Verfahren verwendet werden.
MIDL2055
das von einem konformen Array abgeleitete Feld muss das letzte Element der Struktur sein.
Die Struktur enthält ein konformes Array, das nicht das letzte Element in der Struktur ist. Das konforme Array muss als letztes Strukturelement angezeigt werden.
MIDL2056
Doppelte [Groß-/Kleinschreibung]-Bezeichnung
Es wurde eine doppelte Groß-/Kleinschreibungsbezeichnung angegeben. Die doppelte Bezeichnung wird angezeigt.
MIDL2057
Kein [Standard]-Fall für diskriminierte Union angegeben
Eine diskriminierte Union wurde ohne Standardfall angegeben.
MIDL2058
Attributausdruck kann nicht aufgelöst werden
Der dem Attribut zugeordnete Ausdruck kann nicht aufgelöst werden. Dieser Fehler tritt normalerweise auf, wenn eine Variable, die im Ausdruck angezeigt wird, nicht definiert ist. Der Fehler kann beispielsweise auftreten, wenn die Variable s nicht definiert ist und vom Attribut [size_is] verwendet wird.
MIDL2059
Attributausdruck muss vom integralen Typ sein, keine Unterstützung für 64-Bit-Ausdrücke
Die angegebene Attributvariable oder der angegebene Ausdruck muss ein integraler Typ sein. Dieser Fehler tritt auf, wenn der Attributausdrucktyp nicht in eine ganze Zahl aufgelöst wird.
MIDL2060
[byte_count] erfordert /ms_ext
Das [byte_count]-Attribut ist eine Microsoft-Erweiterung für DCE IDL. Um dieses Attribut zu verwenden, können Sie nicht mit dem / osf-Schalter kompilieren, der die MIDL-Compilerstandardoptionen /ms_ext und /c_ext außer Kraft setzt.
MIDL2061
[byte_count] kann nur auf parameter des Zeigertyps angewendet werden.
Das [byte_count]-Attribut kann nur auf [out]-Parameter angewendet werden, und alle [out]-Parameter müssen Zeigertypen sein.
MIDL2062
[byte_count] kann nicht auf einem Zeiger auf ein konformes Array oder eine konforme Struktur angegeben werden.
Das [byte_count]-Attribut kann nicht auf ein konformes Array oder eine konforme Struktur angewendet werden.
MIDL2063
Parameter, der die Byteanzahl angibt, ist nicht nur [in] oder Der Parameter für die Byteanzahl ist nicht nur [out]
Der dem [byte_count] zugeordnete Wert muss vom Client an den Server übertragen werden. Es muss sich um einen [in]-Parameter handelt. Der [byte_count]-Parameter muss kein [in, out]-Parameter sein.
MIDL2064
Parameter, der die Byteanzahl angibt, ist kein integraler Typ
Der Der Byteanzahl zugeordnete Wert muss der ganzzahlige Typ int, small, short oder long sein.
MIDL2065
[byte_count] kann nicht für einen Parameter mit Größenattributen angegeben werden.
Das Attribut [byte_count] kann nicht mit anderen Größenattributen wie [size_is] oder [length_is] verwendet werden.
MIDL2066
[Groß-/Kleinschreibung]-Ausdruck ist nicht konstant
Der für die Groß-/Kleinschreibung angegebene Ausdruck ist keine Konstante.
MIDL2067
[Fall]-Ausdruck hat keinen integralen Typ.
Der für die Groß-/Kleinschreibung angegebene Ausdruck ist kein ganzzahliger Typ.
MIDL2068
Das Angeben von [context_handle] für einen anderen Typ als void * erfordert /ms_ext
Für die DCE-RPC-Kompatibilität muss das Kontexthandle ein Zeiger vom Typ void * sein. Wenn die Kontexthandles anderen Typen als void * zugeordnet werden sollen, verwenden Sie nicht den MIDL-Compilerschalter /osf, der den MIDL-Compilerstandardschalter /ms_ext außer Kraft setzt.
MIDL2069
kann nicht mehr als einen Parameter mit jedem comm_status/fault_status angeben
Eine Prozedur kann nur einen Parameter mit dem Attribut [comm_status] aufweisen. Es kann höchstens einen Parameter mit dem Attribut [fault_status] aufweisen.
MIDL2070
comm_status/fault_status Parameter muss ein [Out]-Zeigerparameter sein
Die Fehlercodetypen [comm_status] und [fault_status] werden vom Server an den Client übertragen und müssen daher als [out]-Parameter angegeben werden. Aufgrund der Einschränkungen in der Programmiersprache C müssen alle [out]-Parameter Zeiger sein.
MIDL2071
Endpunktsyntaxfehler
Die Endpunktsyntax ist falsch.
MIDL2072
nicht verwendbares Attribut
Das angegebene Attribut kann in diesem Konstrukt nicht angewendet werden. Das Zeichenfolgen-Attribut gilt beispielsweise für Char-Arrays oder Zeichenzeiger und kann nicht auf eine Struktur angewendet werden, die aus zwei kurzen ganzen Zahlen besteht:
typedef [string] struct moo 
{
    short x;
    short y;
};
MIDL2073
[zuordnung] erfordert /ms_ext
Das attribut allocate stellt eine Microsoft-Erweiterung dar, die nicht als Teil von DCE RPC definiert ist. Um dieses Attribut zu verwenden, können Sie nicht mit dem / osf-Schalter kompilieren, der den MIDL-Compilerstandardschalter /ms_ext
MIDL2074
Ungültiger [zuordnungs]-Modus
Ein ungültiger Modus für das [allocate]-Attributkonstrukt wurde angegeben. Die vier gültigen Modi sind single_node, all_nodes, on_null und immer.
MIDL2075
length-Attribute können nicht mit dem Zeichenfolgensattribut angewendet werden
Wenn das Zeichenfolgenattribut verwendet wird, rufen die generierten Stubdateien die strlen-Funktion auf, um die Länge der Zeichenfolge zu bestimmen. Verwenden Sie nicht das length-Attribut und das Zeichenfolgen-Attribut für dieselbe Variable.
MIDL2076
[last_is] und [length_is] können nicht gleichzeitig angegeben werden.
Sowohl [last_is] als auch [length_is] wurden für dasselbe Array angegeben. Diese Attribute sind wie folgt verknüpft: length = last first + 1. Da jeder Wert vom anderen abgeleitet werden kann, geben Sie nicht beides an.
MIDL2077
[max_is] und [size_is] können nicht gleichzeitig angegeben werden.
Sowohl [ max_is] als auch [ size_is] wurden für dasselbe Array angegeben. Diese Attribute sind wie folgt verknüpft: max = size + 1. Da jeder Wert vom anderen abgeleitet werden kann, geben Sie nicht beides an.
MIDL2078
Kein [switch_is]-Attribut, das bei verwendung von union angegeben wurde
Für die Union wurde keine Diskriminanz angegeben. Das [switch_is]-Attribut gibt die Diskriminanz an, die zum Auswählen zwischen den Union-Feldern verwendet wird.
MIDL2079
no [uuid] angegeben
Für die Schnittstelle wurde keine UUID angegeben.
MIDL2080
[uuid] auf der [lokalen] Schnittstelle ignoriert
Die Verwendung des [local]-Attributs für eine Objektschnittstelle bewirkt, dass der MIDL-Compiler das [uuid]-Attribut ignoriert. Sie können nicht beide Attribute auf einer RPC-Schnittstelle verwenden.
MIDL2081
Typkonflikt zwischen Längen- und Größenattributeausdrücken
Die Ausdrücke für längen- und größenattribute müssen denselben Typ aufweisen. Diese Warnung wird beispielsweise ausgegeben, wenn die Attributvariable für den Ausdruck [size_is] vom Typ unsigned long und die Attributvariable für den Ausdruck [length_is] den Typ long aufweist.
MIDL2082
[string]-Attribut muss das Array oder zeiger "byte", "char" oder "wchar_t" angegeben werden.
Ein Zeichenfolgensattribut kann nicht auf einen Zeiger oder ein Array angewendet werden, dessen Basistyp kein Byte, Zeichen oder eine Struktur ist, bei der die Member alle den Byte - oder char-Typ aufweisen.
MIDL2083
Konflikt zwischen dem Typ des [switch_is]-Ausdrucks und dem Switchtyp der Union
Wenn die Union [switch_type] nicht angegeben ist, entspricht der Switchtyp dem [switch_is]-Feld.
MIDL2084
[transmit_as] darf nicht auf einen Typ angewendet werden, der von einem Kontexthandle abgeleitet ist.
Kontexthandles können nicht wie andere Typen übertragen werden.
MIDL2085
[transmit_as] muss einen übertragbaren Typ angeben.
Der angegebene [transmit_as]-Typ wird von einem Typ abgeleitet, der nicht von Microsoft RPC übertragen werden kann, z. B. void, void * oder int. Verwenden Sie einen definierten RPC-Basistyp. fügen Sie im Fall von int Größenbezeichner wie small, short oder long hinzu, um den int zu qualifizieren.
MIDL2086
übertragener Typ für [transmit_as] und [represent_as] darf kein Zeiger sein oder von einem Zeiger abgeleitet werden
Der übertragene Typ kann kein Zeiger sein oder von einem Zeiger abgeleitet werden.
MIDL2087
dargestellter Typ für [transmit_as] und [represent_as] darf nicht von einem konformen/variierenden Array, dessen Zeigeräquivalent oder einer konformen/variierenden Struktur abgeleitet werden.
Der Typ, auf den [transmit_as] angewendet wurde, kann nicht von einem konformen Array oder einer Struktur (einem Array oder einer Struktur, deren Größe zur Laufzeit bestimmt wird) abgeleitet werden.
MIDL2088
[uuid]-Format ist falsch
Das UUID-Format entspricht nicht der Spezifikation. Die UUID muss eine Zeichenfolge sein, die aus fünf Sequenzen von Hexadezimalziffern der Längen 8, 4, 4, 4 und 12 Ziffern besteht. "12345678-1234-ABCD-EF01-28A49C28F17D" ist eine gültige UUID. Verwenden Sie die Funktion UuidCreate oder ein Hilfsprogramm, um eine gültige UUID zu generieren.
MIDL2089
uuid ist keine Hexadezimalzahl
Die für die Schnittstelle angegebene UUID enthält zeichen, die in einer hexadezimalen Zahlendarstellung ungültig sind. Die Zeichen 0 bis 9 und A bis F sind in einer hexadezimalen Darstellung gültig.
MIDL2090
Optionale Parameter müssen nach den erforderlichen Parametern kommen
Eine Beschreibung der Reihenfolge von Parameterlisten finden Sie unter [optional] in der MIDL-Sprachreferenz.
MIDL2091
[dllname] erforderlich, wenn [eintrag] verwendet wird
Wenn Sie einen Einstiegspunkt in eine DLL angeben, müssen Sie auch den Namen dieser DLL mithilfe des [dllname]-Attributs angeben.
MIDL2092
[bindable] ist ohne [propget], [propput] oder [propputref] ungültig.
Das Attribut [bindable] ist nur für eine Eigenschaft gültig. Daher müssen Sie auch eine der Eigenschaftenzugriffs- oder Eigenschafteneinstellungsfunktionen angeben.
MIDL2093
Prozeduren mit [propput] oder [propputref] müssen mindestens einen Parameter aufweisen.
Eine [Propput]- oder [ propputref]-Prozedur muss mindestens einen [in]-Parameter mit der festzulegenden -Eigenschaft aufweisen. Eine [propget]-Prozedur muss mindestens über einen [out, retval]-Parameter verfügen, um die Eigenschaft oder den Verweis zu empfangen.
MIDL2094
[id]-Attribut ist erforderlich
Diese Memberfunktion erfordert aufgrund der verwendeten dispinterface-Syntax eine DISPID, die Sie mit dem Attribut [ id] angeben. Wenn Sie eine Dispinterface mithilfe von Eigenschaften und Methoden angeben, müssen Sie für jede Eigenschaft und Methode eine DISPID angeben.
MIDL2095
Der in der ACF angegebene Schnittstellenname stimmt nicht mit dem in der IDL-Datei angegebenen überein.
Im aktuellen Compilermodus muss der Name, der auf die schnittstelle Schlüsselwort (keyword) im ACF folgt, mit dem Namen übereinstimmen, der auf die schnittstelle Schlüsselwort (keyword) in der IDL-Datei folgt. Die Schnittstellennamen in den IDL- und ACF-Dateien können sich unterscheiden, wenn Sie mit dem MIDL-Compilerschalter /acf kompilieren.
MIDL2096
dupliziertes Attribut
Doppelte oder in Konflikt stehende Attribute wurden angegeben. Dieser Fehler tritt häufig auf, wenn sich zwei Attribute gegenseitig ausschließen. Beispielsweise können die Attribute [Code] und [nocode] nicht gleichzeitig verwendet werden.
MIDL2097
Parameter mit [comm_status] oder [fault_status]-Attribut muss ein Zeiger auf den Typ error_status_t
Wenn [fault_status] oder [comm_status] als Parameterattribute verwendet wird, muss der Parameter ein [out]-Parameter vom Typ error_status_t sein. Wenn ein Serverfehler auftritt, wird der Parameter auf den Fehlercode festgelegt. Wenn der Remoteaufruf erfolgreich abgeschlossen wurde, legt die Prozedur den Wert fest.
MIDL2098
Eine [lokale] Prozedur kann nicht in der ACF-Datei angegeben werden.
Im ACF wurde eine lokale Prozedur angegeben. Die lokale Prozedur kann nur in der IDL-Datei angegeben werden.
MIDL2099
Der angegebene Typ ist nicht als Handle definiert.
Der im [implicit_handle]-Attribut angegebene Typ ist nicht als Handle-Typ definiert. Ändern Sie die Typdefinition oder den Typnamen, der durch das -Attribut angegeben wird.
MIDL2100
Prozedur undefiniert
Ein Attribut wurde auf eine Prozedur im ACF angewendet, und diese Prozedur ist nicht in der IDL-Datei definiert.
MIDL2101
Dieser Parameter ist in der IDL-Datei nicht vorhanden.
Ein im ACF angegebenen Parameter ist in der Definition in der IDL-Datei nicht vorhanden. Alle Parameter, Funktionen und Typdefinitionen, die im ACF angezeigt werden, müssen Parametern, Funktionen und Typen entsprechen, die zuvor in der IDL-Datei definiert wurden.
MIDL2102
Dieses Array-Begrenzungskonstrukt wird nicht unterstützt.
MIDL unterstützt derzeit die Ausdrücke der oberen und unteren Grenzen eines Arrays im Format Array[Lower .. Upper] nur, wenn die Konstante, die die untere Grenze des Arrays angibt, in den Wert 0 aufgelöst wird.
MIDL2103
Arraygebundene Spezifikation ist unzulässig
Die Benutzerspezifikation der Arraygrenzen für das Array mit fester Größe ist unzulässig. Zum Beispiel:
typedef short Array[-1]
MIDL2104
Zeiger auf ein konformes Array oder ein Array, das ein konformes Array enthält, wird nicht unterstützt.
Unzulässige, konforme Arraynutzung. Regeln für konforme Arrays finden Sie unter Arrays und RPC.
MIDL2105
pointee/array leitet keine Größe ab
Ein konformes Array wurde ohne Größenangabe angegeben. Sie können die Größe mit dem Attribut [max_is] oder [size_is] angeben.
MIDL2106
nur feste Arrays und SAFEARRAYs sind in einer Typbibliothek legal.
Sie haben einen Arraytyp in einer Bibliotheksanweisung verwendet, die nicht in einer Typbibliothek verwendet werden kann.
MIDL2107
SAFEARRAYs sind nur innerhalb eines Bibliotheksblocks legal.
Der MIDL-Compiler erkennt einen SAFEARRAY nicht als gültigen Datentyp, außer beim Generieren einer Typbibliothek.
MIDL2108
falsch formatierte Zeichenkonstante
Das Zeilenendezeichen ist in Zeichenkonstanten nicht zulässig.
MIDL2109
Ende der Datei im Kommentar gefunden
Das Dateiendezeichen wurde in einem Kommentar gefunden.
MIDL2110
Ende der Datei in Zeichenfolge gefunden
Das Ende der Datei wurde in einer Zeichenfolge gefunden.
MIDL2111
Bezeichnerlänge überschreitet 31 Zeichen
Bezeichner sind auf 31 alphanumerische Zeichen beschränkt. Bezeichnernamen, die länger als 31 Zeichen sind, werden abgeschnitten.
MIDL2112
Zeilenende in Zeichenfolge gefunden
Das Zeilenendezeichen wurde in der Zeichenfolge gefunden. Vergewissern Sie sich, dass Sie das doppelte Anführungszeichen eingefügt haben, das die Zeichenfolge beendet.
MIDL2113
Zeichenfolgenkonstante überschreitet den Grenzwert von 255 Zeichen
Die Zeichenfolge überschreitet die maximal zulässige Länge von 255 Zeichen.
MIDL2114
Bezeichner überschreitet den Grenzwert von 255 Zeichen und wurde abgeschnitten
Der Bezeichner überschreitet die maximal zulässige Länge von 255 Zeichen. Überschüssige Zeichen im Bezeichner werden abgeschnitten.
MIDL2115
konstant zu groß
Die Konstante ist zu groß, um intern dargestellt zu werden.
MIDL2116
Numerischer Analysefehler
Der Compiler konnte den numerischen Bezeichner nicht analysieren.
MIDL2117
Fehler beim Öffnen der Datei
Das Betriebssystem hat beim Versuch, eine Ausgabedatei zu öffnen, einen Fehler gemeldet. Dieser Fehler kann durch einen Namen verursacht werden, der für das Dateisystem zu lang ist, oder durch einen doppelten Dateinamen.
MIDL2118
Fehlerbindung an Funktion
MIDL2119
Fehler beim Initialisieren von OLE
MIDL2120
Fehler beim Laden der Bibliothek
MIDL2121
[out] nur Parameter dürfen nicht von einem [eindeutigen] oder [ptr]-Zeiger/Array der obersten Ebene abgeleitet werden.
Ein eindeutiger Zeiger darf kein [out]only-Parameter sein. Per Definition kann ein eindeutiger Zeiger von NULL in ungleich NULL geändert werden. Es werden keine Informationen zum [out]-only-Parameter vom Client an den Server übergeben.
MIDL2122
-Attribut gilt nicht für diese Nicht-Rpc-Union
Nur die Attribute [switch_is] und [switch_type] gelten für eine Union, die im Rahmen eines Remoteprozeduraufrufs übertragen wird.
MIDL2123
Der für ein Size-Attribut verwendete Ausdruck darf nicht von einem [out]-only-Parameter abgeleitet werden.
Der Wert eines [out]-only-Parameters wird nicht an den Server übertragen und kann nicht verwendet werden, um die Länge oder Größe des [in]-Parameters zu bestimmen.
MIDL2124
Ausdruck, der für ein Length-Attribut für einen [in]-Parameter verwendet wird, kann nicht von einem [out]-only-Parameter abgeleitet werden
Der Wert eines [out]-only-Parameters wird nicht an den Server übertragen und kann nicht verwendet werden, um die Länge oder Größe des [in]-Parameters zu bestimmen.
MIDL2125
Verwendung von "int" benötigt /c_ext
MIDL ist eine stark typisierte Sprache. Alle über das Netzwerk übertragenen Parameter müssen von einem der MIDL-Basistypen abgeleitet werden. Der Typ int ist nicht als Teil von MIDL definiert. Die übertragenen Daten müssen einen Größenbezeichner enthalten: klein, kurz oder lang. Daten, die nicht über das Netzwerk übertragen werden, können in eine Schnittstelle eingebunden werden. Verwenden Sie den Schalter /c_ext .
MIDL2126
Struktur-/Union-Feld darf nicht "void" sein
Felder in einer Struktur oder Union müssen als einen bestimmten Basistyp deklariert werden, der von MIDL unterstützt wird, oder einen Typ, der von den Basistypen abgeleitet ist. Void-Typen sind in Remotevorgängen nicht zulässig.
MIDL2127
array-Element darf nicht leer sein
Ein Arrayelement kann nicht leer sein.
MIDL2128
Die Verwendung von Typqualifizierern und/oder Modifizierern erfordert /c_ext
Typmodifizierer wie _cdecl und _far können nur kompiliert werden, wenn Sie den Schalter /c_ext angeben.
MIDL2129
Struktur/Unionsfeld darf nicht von einer Funktion abgeleitet werden
Die Felder einer Struktur oder Union müssen MIDL-Basistypen oder -Typen sein, die von diesen Basistypen abgeleitet werden. Funktionen sind in Struktur- oder Unionsbereichen nicht legal.
MIDL2130
array-Element darf keine Funktion sein
Ein Arrayelement kann keine Funktion sein.
MIDL2131
Parameter darf keine Funktion sein
Der Parameter für eine Remoteprozedur muss eine Variable eines angegebenen Typs sein. Eine Funktion kann kein Parameter für die Remoteprozedur sein.
MIDL2132
Struktur/Union mit Bitfeldern benötigt /c_ext
Sie müssen den MIDL-Compilerschalter /c_ext angeben, um Bitfelder in Strukturen zuzulassen, die in einem Remoteprozeduraufruf nicht übertragen werden.
MIDL2133
Bitfeldspezifikation für einen anderen Typ, der "int" eine nicht ANSI-kompatible Erweiterung ist
Die Spezifikation der ANSI C-Programmiersprache lässt es nicht zu, dass Bitfelder auf Nicht-Integer-Typen angewendet werden.
MIDL2134
Bitfeldspezifikation kann nur auf einfache, integrale Typen angewendet werden
Die Spezifikation der ANSI C-Programmiersprache lässt es nicht zu, dass Bitfelder auf Nicht-Integer-Typen angewendet werden.
MIDL2135
Struktur-/Unionfeld darf nicht von handle_t oder einem Kontexthandle abgeleitet werden
Kontexthandles können nicht als Teil einer anderen Struktur übertragen werden. Sie müssen als Kontexthandles übertragen werden.
MIDL2136
array-Element darf nicht von handle_t oder einem Kontexthandle abgeleitet werden
Kontexthandles können nicht als Teil eines Arrays übertragen werden.
MIDL2137
diese Spezifikation der Union benötigt /c_ext
Eine Union, die in der Schnittstellendefinition angezeigt wird, muss dem diskriminanten zugeordnet oder als lokal deklariert werden. Daten, die nicht über das Netzwerk übertragen werden, können implizit als lokal deklariert werden, wenn Sie den / c_ext-Switch verwenden, der MIDL-Standardeinstellung. Sie können diese IDL nicht mit dem Schalter /osf kompilieren.
MIDL2138
Parameter, die von einem "int" abgeleitet werden, müssen den Größenbezeichner "small", "short" oder "long" mit dem "int" aufweisen.
Der Typ int ist nur ein gültiger MIDL-Typ auf 32-Bit-Plattformen. Auf 16-Bit-Systemen muss int eine Größenspezifikation beigefügt sein. Verwenden Sie einen der Größenbezeichner klein, kurz oder lang.
MIDL2139
Der Typ des Parameters kann nicht von void oder void* abgeleitet werden.
MIDL ist eine stark typisierte Sprache. Alle über das Netzwerk übertragenen Parameter müssen von einem der MIDL-Basistypen abgeleitet werden. MIDL unterstützt void nicht als Basistyp. Sie müssen die Deklaration in einen gültigen MIDL-Typ ändern.
MIDL2140
Parameter, die von einer Struktur/Union abgeleitet werden, die Bitfelder enthält, werden nicht unterstützt.
Bitfelder werden von DCE RPC nicht als gültiger Datentyp definiert.
MIDL2141
Die Verwendung eines Parameters, der von einem Typ abgeleitet wird, der Typmodifizierer/Typqualifizierer enthält, benötigt /c_ext
Die Verwendung von Schlüsselwörtern wie far, near, const und volatile in der IDL-Datei ist eine Microsoft-Erweiterung für DCE RPC. Diese Schlüsselwörter sind nicht verfügbar, wenn Sie mit dem / osf-Schalter kompilieren, wodurch der Standarderweiterungsschalter /c_ext deaktiviert wird.
MIDL2142
Parameter darf nicht von einem Zeiger auf eine Funktion abgeleitet werden
Die RPC-Laufzeitbibliotheken übertragen einen Zeiger und die zugehörigen Daten zwischen Client und Server. Zeiger auf Funktionen können nicht als Parameter übertragen werden, da die Funktion nicht über das Netzwerk übertragen werden kann.
MIDL2143
parameter darf nicht von einer nichtpc-fähigen Union abgeleitet werden
Die Gewerkschaft muss diskriminant sein. Verwenden Sie die Attribute [switch_is] und [switch_type].
MIDL2144
der Rückgabetyp leitet sich von einem "int" ab. Sie müssen Größenbezeichner mit dem "int" verwenden.
Auf 16-Bit-Systemen ist der Typ int kein gültiger MIDL-Typ, es sei denn, er wird von einer Größenspezifikation begleitet. Verwenden Sie einen der Größenbezeichner klein, kurz oder lang.
MIDL2145
Rückgabetyp darf nicht von einem void-Zeiger abgeleitet werden
MIDL ist eine stark typisierte Sprache. Alle über das Netzwerk übertragenen Parameter müssen von einem der MIDL-Basistypen abgeleitet werden. Void-Typen werden nicht als Teil von MIDL definiert. Sie müssen die Deklaration in einen gültigen MIDL-Typ ändern.
MIDL2146
Rückgabetyp darf nicht von einer Struktur/Union abgeleitet werden, die Bitfelder enthält
Bitfelder werden von DCE RPC nicht als gültiger Datentyp definiert.
MIDL2147
Rückgabetyp darf nicht von einer nichtpc-fähigen Union abgeleitet werden
Die Gewerkschaft muss diskriminant sein. Verwenden Sie die Attribute [switch_is] und [switch_type].
MIDL2148
Rückgabetyp darf nicht von einem Zeiger auf eine Funktion abgeleitet werden
Die RPC-Laufzeitbibliotheken übertragen einen Zeiger und die zugehörigen Daten zwischen Client und Server. Zeiger auf Funktionen können nicht als Parameter übertragen werden, da RPC keine Methode zum Übertragen der zugeordneten Funktion über das Netzwerk definiert.
MIDL2149
Zusammengesetzte Initialisierer werden nicht unterstützt.
DCE RPC unterstützt nur die einfache Initialisierung. Die Struktur oder das Array kann nicht in der IDL-Datei initialisiert werden.
MIDL2150
ACF-Attribute in der IDL-Datei benötigen den Schalter /app_config
Mit einer Microsoft-Erweiterung können Sie ACF-Attribute in der IDL-Datei angeben. Verwenden Sie den Schalter /app_config , um diese Erweiterung zu aktivieren.
MIDL2151
Single-Zeilenkommentar benötigt /ms_ext oder /c_ext
Einzeilige Kommentare, die zwei Schrägstriche (//) verwenden, stellen eine Microsoft-Erweiterung für DCE RPC dar. Sie können keine einzeiligen Kommentare verwenden, wenn Sie mit dem / osf-Schalter kompilieren.
MIDL2152
[Version]-Format ist falsch
Die Schnittstellenversionsnummer im Schnittstellenheader muss im Format Major angegeben werden. minor, wobei jede Zahl zwischen 0 und 65535 liegen kann.
MIDL2153
"signiert" benötigt /ms_ext oder /c_ext
Die Verwendung des signierten Schlüsselwort (keyword) ist eine Microsoft-Erweiterung für DCE RPC. Sie können den / osf-Schalter nicht verwenden, wenn Sie dieses Feature verwenden möchten.
MIDL2154
nicht übereinstimmender Zuordnungstyp
Der Typ der Variablen stimmt nicht mit dem Typ des Werts überein, der der Variablen zugewiesen ist.
MIDL2155
die Deklaration muss das Folgende haben: const <type> \<declarator> = <initializing expression>
Die Deklaration ist nicht mit der DCE RPC-Syntax kompatibel. Verwenden Sie den Midl-Compilermodusschalter /ms_ext oder /c_ext .
MIDL2156
Deklaration muss "const" aufweisen
Deklarationen in der IDL-Datei müssen konstanten Ausdrücke sein, die den Schlüsselwort (keyword) const verwenden, z. B.:
const short x = 2;
MIDL2157
struct/union/enum darf nicht in einer Parametertypspezifikation definiert werden
Der Struktur-, Union- oder Aufzählungstyp muss außerhalb des Funktionsprototyps explizit angegeben werden.
MIDL2158
[zugeordnet]-Attribut darf nur auf nicht leere Zeigertypen angewendet werden.
Das Attribut [allocate] ist für komplexe zeigerbasierte Datenstrukturen konzipiert. Wenn das Attribut [zugeordnet] angegeben wird, durchläuft die Stubdatei die Datenstruktur, um die Gesamtgröße aller Objekte zu berechnen, auf die über den Zeiger und alle anderen Zeiger in der Datenstruktur zugegriffen werden kann. Ändern Sie den Typ in einen nicht-virtuellen Zeigertyp, oder entfernen Sie das Attribut [allocation], und verwenden Sie eine andere Methode, um die Zuordnungsgröße zu bestimmen, z. B. den Sizeof-Operator .
MIDL2159
Array oder ein entsprechendes Zeigerkonstrukt kann nicht von einer nicht gekapselten Union abgeleitet werden
Jede Union muss mit einem Diskriminanten verbunden sein. Arrays von Vereinigungen sind nicht zulässig, da sie nicht die zugehörige Diskriminanz bereitstellen. Arrays von Strukturen, in denen die Struktur die Union und ihre Diskriminanz verpackt, sind zulässig, da die Stubs das Diskriminant verwenden können, um die Größe jeder Union zu bestimmen.
MIDL2160
feld darf nicht von einem error_status_t-Typ abgeleitet werden
Der error_status_t-Typs kann nur als Parameter oder Rückgabetyp verwendet werden. Sie kann nicht in das Feld einer Struktur oder Union eingebettet werden.
MIDL2161
union verfügt über mindestens einen Arm ohne Gehäusebezeichnung
Die Union-Deklaration stimmt nicht mit der erforderlichen MIDL-Syntax für die Union überein. Jeder Union-Arm erfordert eine Groß- oder Standardbezeichnung, die diesen Union-Arm auswählt.
MIDL2162
Parameter oder Rückgabewert dürfen nicht von einem Typ abgeleitet werden, auf den [ignore] angewendet wurde
Das [ignore]-Attribut ist ein Feldattribute, das nur auf Felder angewendet werden kann, z. B. Felder von Strukturen und Arrays. Das [ignore]-Attribut gibt an, dass der Stub den Zeiger während der Übertragung nicht ableiten soll und nicht zulässig ist, wenn er mit anderen Attributen in Konflikt kommt, die dereferiert werden müssen, z. B. [out]-Parameter und Funktionsrückgabewerte.
MIDL2163
der Zeiger hat bereits ein Zeiger-Attribut darauf angewendet.
Nur eines der Zeigerattribute[ ref], [eindeutig] oder [ptr] kann auf einen einzelnen Zeiger angewendet werden.
MIDL2164
Feld/Parameter dürfen nicht von einer Struktur abgeleitet werden, die über einen Refzeiger rekursiv ist
Per Definition kann ein Verweiszeiger nicht auf NULL festgelegt werden. Eine rekursive Datenstruktur, die mit einem Verweiszeiger definiert ist, weist keine NULL-Elemente auf und ist gemäß Konvention nicht bestimmend. Verwenden Sie ein [eindeutiges] Zeiger-Attribut, damit die Datenstruktur ein NULL-Element angeben kann, oder definieren Sie die Datenstruktur als nicht übereinstimmende Datenstruktur neu.
MIDL2165
Die Verwendung eines Felds, das von einem Void-Zeiger abgeleitet wird, erfordert /c_ext
Der Typ void * und andere Typen und Typqualifizierer, die von DCE IDL nicht unterstützt werden, sind in der IDL-Datei nur zulässig, wenn Sie die MIDL-Standardcompilereinstellungen verwenden. Wenn Sie den /osf-Schalter verwenden, wird diese Standardeinstellung außer Kraft gesetzt. Wenn Sie im osf-Kompatibilitätsmodus kompilieren müssen, müssen Sie den Zeigertyp neu definieren.
MIDL2166
Die Verwendung dieses Attributs erfordert /ms_ext
Dieses Sprachfeature ist eine Microsoft-Erweiterung für DCE IDL. Sie können dieses Feature nicht verwenden, wenn Sie im osf-Kompatibilitätsmodus ( /osf ) kompilieren.
MIDL2167
Dieses Attribut ist nur bei neuen Formattypbibliotheken zulässig.
Um dieses Attribut verwenden zu können, benötigen Sie die Version von Oleaut32.dll, die mit Windows 2000 oder höher bereitgestellt wird.
MIDL2168
Die Verwendung von wchar_t erfordert /ms_ext oder /c_ext
Der Breitzeichentyp stellt eine Erweiterung für DCE IDL dar. Der MIDL-Compiler akzeptiert den Breitzeichentyp nicht, wenn Sie den Schalter /osf angeben.
MIDL2169
Unbenannte Felder benötigen /ms_ext oder /c_ext
DCE IDL unterstützt nicht die Verwendung von nicht benannten Strukturen oder Vereinigungen, die in andere Strukturen oder Vereinigungen eingebettet sind. In DCE IDL müssen alle eingebetteten Felder benannt werden. Der MIDL-Compiler lässt ihre Verwendung nicht zu, wenn Sie den Schalter /osf angeben.
MIDL2170
Unbenannte Felder können nur von Struktur-/Union-Typen abgeleitet werden.
Die Microsoft-Erweiterung für die DCE-IDL, die unbenannte Felder unterstützt, gilt nur für Strukturen und Vereinigungen. Sie müssen dem Feld einen Namen zuweisen oder das Feld neu definieren, um diese Einschränkung zu erfüllen.
MIDL2171
Das Feld einer Union kann nicht von einem konformen/variierenden Array oder dessen Zeigeräquivalent abgeleitet werden.
Das konforme Array kann nicht allein in der Union angezeigt werden, sondern muss von dem Wert begleitet werden, der die Größe des Arrays angibt. Anstatt das Array als Union-Arm zu verwenden, verwenden Sie eine Struktur, die aus dem konformen Array und dem Bezeichner besteht, der seine Größe angibt.
MIDL2172
kein [pointer_default]-Attribut angegeben, vorausgesetzt, [ptr] für alle nicht zugeordneten Zeiger in der Schnittstelle
Die DCE IDL-Implementierung gibt an, dass alle Zeiger in jeder IDL-Datei Zeigerattributen zugeordnet sein müssen. Wenn dem Parameter oder Zeigertyp kein explizites Zeigerattribute zugewiesen ist und kein [pointer_default]-Attribut in der IDL-Datei angegeben ist, wird das vollständige Zeigerattribute ptr dem Zeiger zugeordnet. Sie können die Zeigerattribute ändern, indem Sie explizite Zeigerattribute verwenden, indem Sie ein [pointer_default]-Attribut angeben oder den Schalter /ms_ext angeben, um den Standardwert für nicht zugewiesene Zeiger auf [eindeutig] zu ändern.
MIDL2173
Initialisierung eines Ausdrucks muss in einen konstanten Ausdruck aufgelöst werden
Wenn ein Ausdruck als Initialisierer verwendet wird, muss der Ausdruck ein konstanter Ausdruck sein. Dies gilt für alle MIDL-Compilermodi. Der Ausdruck muss zur Kompilierzeit auflösbar sein. Geben Sie eine Literalkonstante oder einen Ausdruck an, der nicht in eine Variable, sondern in eine Konstante aufgelöst wird.
MIDL2174
Attributausdruck muss vom Typ integer, char, Boolean oder enum sein.
Der angegebene Typ löst nicht in einen gültigen Switchtyp auf. Verwenden Sie einen Ganzzahl-, Zeichen-, Byte-, Booleschen oder Enumerationstyp oder einen Typ, der von einem dieser Typen abgeleitet ist.
MIDL2175
illegale Konstante
Die angegebene Konstante befindet sich außerhalb des gültigen Bereichs für den angegebenen Typ.
MIDL2176
Attribut nicht implementiert; Ignoriert
Das angegebene Attribut wird in dieser Version von Microsoft RPC nicht implementiert. Der MIDL-Compiler setzt die Verarbeitung der IDL-Datei fort, als wäre das Attribut nicht vorhanden.
MIDL2177
Rückgabetyp darf nicht von einem [ref]-Zeiger abgeleitet werden
Funktionsrückgabewerte, die als Zeigertypen definiert sind, müssen als [eindeutig] oder als vollständige Zeiger angegeben werden. Sie können keine Verweiszeiger verwenden.
MIDL2178
Der Attributausdruck muss ein Variablenname oder ein Zeiger-Dereference-Ausdruck in diesem Modus sein. Sie müssen den /ms_ext-Schalter angeben.
Der DCE IDL-Compiler erfordert, dass die Größe, die dem Attribut [size_is] zugeordnet ist, durch eine Variable oder Zeigervariable angegeben wird. Wenn Sie die Microsoft-Erweiterung nutzen möchten, mit der das Attribut [size_is] durch einen konstanten Ausdruck definiert werden kann, können Sie den Compilerschalter /osf nicht verwenden.
MIDL2179
parameter darf nicht von einer rekursiven nicht gekapselten Union abgeleitet werden
Eine Union muss einen Diskriminanten enthalten, daher kann eine Union keine andere Union als Element haben. Eine Union kann nur dann in eine andere Union eingebettet werden, wenn sie Teil einer Struktur ist, die den Diskriminanten enthält.
MIDL2180
binding-handle-Parameter kann nicht nur [out] sein
Der handle-Parameter, der vom MIDL-Compiler als Bindungshandle für diesen Vorgang identifiziert wird, muss ein [in]-Parameter sein. [out]-only-Parameter sind für den Client-Stub nicht definiert, und das Bindungshandle muss auf dem Client definiert werden.
MIDL2181
Zeiger auf ein Handle darf nicht [eindeutig] oder [ptr] sein.
Sie können die eindeutigen und vollständigen Zeigerattribute nicht für einen Zeiger auf ein Handle verwenden. Diese Attribute lassen den Wert NULL zu, und das Bindungshandle darf nicht NULL sein. Verwenden Sie das [ref]-Attribut, um den binding-handle-Parameter von Verweiszeigern abzuleiten.
MIDL2182
Parameter, der kein Bindungshandle ist, darf nicht von handle_t
Der primitive Handletyp handle_t ist kein gültiger Datentyp, der über das Netzwerk übertragen wird. Ändern Sie den Parametertyp in einen anderen Typ als handle_t, oder entfernen Sie den Parameter.
MIDL2183
Unerwartetes Ende der Datei gefunden
Der MIDL-Compiler hat das Ende der Datei gefunden, bevor er alle syntaktischen Elemente der Datei erfolgreich auflösen konnte. Vergewissern Sie sich, dass am Ende der Datei das rechts geschweifte Zeichen (}) vorhanden ist, oder überprüfen Sie die Syntax.
MIDL2184
Von handle_t abgeleiteter Typ darf nicht [transmit_as] angewendet werden.
Der primitive Handletyp handle_t wird nicht über das Netzwerk übertragen.
MIDL2185
[context_handle] darf nicht auf einen Typ angewendet werden, auf den [handle] angewendet wurde.
Die Attribute [context_handle] und [handle] können nicht auf denselben Typ angewendet werden.
MIDL2186
[handle] darf nicht für einen Typ angegeben werden, der von void oder void * abgeleitet ist.
Ein typ, der mit dem [handle]-Attribut angegeben ist, kann über das Netzwerk übertragen werden, aber der Typ void* ist kein übertragbarer Typ. Der Handletyp muss in einen Typ aufgelöst werden, der von den übertragbaren Basistypen abgeleitet ist.
MIDL2187
parameter muss in diesem Modus entweder [in], [out] oder [in,out] aufweisen. Sie müssen /ms_ext oder /c_ext angeben.
Der DCE IDL-Compiler erfordert, dass alle Parameter über explizite direktionale Parameter verfügen. Um die Microsoft-Erweiterungen für DCE IDL zu verwenden, können Sie nicht den Schalter /osf verwenden, der /ms_ext und /c_ext überschreibt.
MIDL2188
übertragener Typ darf für [transmit_as], [represent_as], [wire_marshal], [user_marshal] nicht von "void" abgeleitet werden.
Das [transmit_as]-Attribut gilt nur für Zeigertypen. Verwenden Sie anstelle von void den Typ void*.
MIDL2189
"void" muss für die erste und einzige Parameterspezifikation angegeben werden.
Der Schlüsselwort (keyword) void wird mit anderen Funktionsparametern fälschlicherweise angezeigt. Um eine Funktion ohne Parameter anzugeben, muss die Schlüsselwort (keyword) void das einzige Element der Parameterliste sein, wie im folgenden Beispiel gezeigt:
void Moo(void)
MIDL2190
[switch_is] darf nur für einen Von einer nicht gekapselten Union abgeleiteten Typ angegeben werden.
Die [switch_is] Schlüsselwort (keyword) wird falsch angewendet. Sie kann nur mit nicht gekapselten Union-Typen verwendet werden.
MIDL2191
zeichenfolgenfähige Strukturen sind in dieser Version nicht implementiert.
MIT DCE IDL kann das Attribut [Zeichenfolge] auf eine Struktur angewendet werden, deren Elemente nur aus Zeichen, Bytes oder Typen bestehen, die in Zeichen oder Bytes aufgelöst werden. Diese Funktionalität wird in Microsoft RPC nicht unterstützt. Das [string]-Attribut kann nicht auf die Struktur als Ganzes angewendet werden. Sie kann jedoch auf jedes einzelne Array angewendet werden.
MIDL2192
switch-Typ kann nur integral, char, boolean oder enum sein.
Der angegebene Typ wird nicht in einen gültigen Switchtyp aufgelöst. Verwenden Sie eine ganze Zahl, ein Zeichen, ein Byte, einen booleschen Typ, einen Enumerationstyp oder einen Typ, der von einem dieser Typen abgeleitet wird.
MIDL2193
[handle] darf nicht für einen Typ angegeben werden, der von handle_t
Ein Handle-Typ muss mit einem und nur einem der Handletypen oder Attribute definiert werden. Verwenden Sie den primitiven Typ handle_t oder das Attribut [handle], aber nicht beides. Der benutzerdefinierte Handletyp muss übertragbar sein, aber der handle_t Typ wird nicht im Netzwerk übertragen.
MIDL2194
Parameter, der von handle_t abgeleitet wird, darf kein [out]-Parameter sein
Ein Handle des primitiven Typs handle_t ist nur für die Seite der Anwendung sinnvoll, in der es definiert ist. Der Typ handle_t wird nicht im Netzwerk übertragen.
MIDL2195
Attributausdruck wird von der Zeigerdereferenzierung [eindeutig] oder [ptr] abgeleitet
Obwohl das [eindeutige] und das vollständige Zeigerattribute zeiger NULL-Werte zulassen, darf der Ausdruck, der das size- oder length-Attribut definiert, niemals einen NULL-Wert aufweisen. Wenn Zeiger verwendet werden, schränkt MIDL Ausdrücke auf [ref]-Zeiger ein.
MIDL2196
"cpp_quote" erfordert /ms_ext
Das attribut cpp_quote ist eine Microsoft-Erweiterung für DCE IDL. Verwenden Sie nicht den MIDL-Compilerschalter /osf, der /ms_ext außer Kraft setzt.
MIDL2197
uuid in Anführungszeichen erfordert /ms_ext
Die Möglichkeit, einen UUID-Wert in Anführungszeichen anzugeben, ist eine Microsoft-Erweiterung für DCE IDL. Verwenden Sie nicht den MIDL-Compilerschalter /osf, der /ms_ext außer Kraft setzt.
MIDL2198
Rückgabetyp kann nicht von einer nicht gekapselten Union abgeleitet werden
Die nicht gekapselte Union kann nicht als Funktionsrückgabetyp verwendet werden. Um den Union-Typ zurückzugeben, geben Sie den Union-Typ als [out]- oder [in, out]-Parameter an.
MIDL2199
Rückgabetyp kann nicht von einer konformen Struktur abgeleitet werden
Die Größe des Rückgabetyps muss eine Konstante sein. Sie können nicht als Rückgabetyp eine Struktur angeben, die ein konformes Array enthält, selbst wenn die Struktur auch den Größenbezeichner enthält. Um die konforme Struktur zurückzugeben, geben Sie die -Struktur als [out]- oder [in, out]-Parameter an.
MIDL2200
[transmit_as] darf nicht auf einen Typ angewendet werden, der von einem generischen Handle abgeleitet ist.
In dieser Version können die Attribute [handle] und [transmit_as] nicht auf demselben Typ kombiniert werden.
MIDL2201
[handle] darf nicht auf einen Typ angewendet werden, auf den [transmit_as] angewendet wurde.
In dieser Version können die Attribute [handle] und [transmit_as] nicht auf demselben Typ kombiniert werden.
MIDL2202
Der für die Const-Deklaration angegebene Typ ist ungültig.
Konstantendeklarationen sind auf ganzzahlige, Zeichen-, Breitzeichen-, Zeichenfolgen- und boolesche Typen beschränkt.
MIDL2203
Operand für den Operator sizeof wird nicht unterstützt.
Der MIDL-Compiler unterstützt den Sizeof-Vorgang nur für einfache Typen. Der angegebene Operand wird nicht zu einem ganzzahligen Typ ausgewertet.
MIDL2204
Dieser Name wird bereits als Const-Bezeichnername verwendet.
Der Bezeichner wurde zuvor verwendet, um eine Konstante in einer const-Deklaration zu identifizieren. Ändern Sie den Namen eines der Bezeichner, sodass die Bezeichner eindeutig sind.
MIDL2205
Inkonsistente Neudefinition des Typs error_status_t
Der Typ error_status_t muss in den Typ ohne Vorzeichen long aufgelöst werden. Andere Typdefinitionen können nicht verwendet werden.
MIDL2206
[Fall] Wert außerhalb des Bereichs des Switchtyps
Der Wert, der dem Fall der switch-Anweisung zugeordnet ist, liegt für den angegebenen Switchtyp außerhalb des Bereichs. Dieser Fehler tritt z. B. auf, wenn in der Case-Anweisung für einen kurzen Ganzzahltyp ein long integer-Wert verwendet wird.
MIDL2207
Parameter, der von wchar_t abgeleitet wird, benötigt /ms_ext
Der Breitzeichentyp wchar_t ist eine Microsoft-Erweiterung für DCE IDL. Verwenden Sie nicht den MIDL-Compilerschalter /osf, der /ms_ext
MIDL2208
Diese Schnittstelle verfügt nur über Rückrufe.
Rückrufe sind nur im Kontext eines Remoteprozeduraufrufs gültig. Die Schnittstelle muss mindestens einen Funktionsprototyp für einen Remoteprozeduraufruf enthalten, der das Attribut [callback] nicht enthält.
MIDL2209
redundant angegebenes Attribut; Ignoriert
Das angegebene Attribut wurde mehrmals angewendet. Mehrere Instanzen desselben Attributs werden ignoriert.
MIDL2210
Kontexthandlestyp, der für ein implizites Handle verwendet wird
Ein Typ, der mit dem [context_handle]-Attribut definiert wurde, wurde als Handletyp in einem [ implicit_handle]-Attribut angegeben. Die Attribute können nicht auf diese Weise kombiniert werden.
MIDL2211
In Konflikt stehende Optionen, die für [allocate] angegeben sind
Die für das ACF-Attribut [allocate] angegebenen Optionen stellen in Konflikt stehende Anweisungen dar. Geben Sie beispielsweise entweder die Option all_nodes oder die Option single_node an, aber nicht beide.
MIDL2212
Fehler beim Schreiben in eine Datei
Fehler beim Schreiben in die Datei. Diese Bedingung kann durch Fehler in Bezug auf Speicherplatz, Dateihandles, Dateizugriffseinschränkungen und Hardwarefehler verursacht werden.
MIDL2213
Kein Switchtyp, der bei der Definition von union gefunden wurde, unter Verwendung des [switch_is]-Typs
Die Union-Definition enthält kein explizites [switch_type]-Attribut. Der Typ der Variablen, die vom [switch_is]-Attribut angegeben wird, wird als Switchtyp verwendet.
MIDL2214
Semantische Überprüfung aufgrund vorheriger Fehler unvollständig
Der MIDL-Compiler übergibt die Eingabedateien in zwei Durchgängen, um alle Vorwärtsdeklarationen aufzulösen. Aufgrund von Fehlern, die während des ersten Durchlaufs aufgetreten sind, wurde die Überprüfung auf den zweiten Durchlauf nicht durchgeführt. Nicht gemeldete Fehler im Zusammenhang mit Forward-Deklarationen können weiterhin in der Datei vorhanden sein.
MIDL2215
Handle-Parameter oder Rückgabetyp wird für eine [Rückruf]-Prozedur nicht unterstützt.
Eine [Rückruf]-Prozedur erfolgt im Kontext eines Aufrufs von einem Client an den Server und verwendet das gleiche Bindungshandle wie der ursprüngliche Aufruf. Explizite Bindungshandlesparameter oder Rückgabetypen sind in Rückruffunktionen nicht zulässig.
MIDL2216
[ptr] unterstützt in dieser Version kein Aliasing.
Ein Alias tritt auf, wenn auf Daten über mehrere Zeiger- oder Variablennamen zugegriffen werden kann. Entfernen Sie den Alias. Weitere Informationen finden Sie unter Eindeutige Zeiger.
MIDL2217
Parameter, der bereits als Kontexthandle definiert ist
Der Parameter wurde zuvor als Kontexthandle definiert.
MIDL2218
[context_handle] darf nicht von handle_t abgeleitet werden
Die drei Handle-Merkmale: der Typ handle_t, das Attribut [handle] und das Attribut [context_handle], schließen sich gegenseitig aus. Es kann jeweils nur ein Merkmal auf einen Typ oder Parameter angewendet werden.
MIDL2219
Arraygröße überschreitet 65536 Bytes
Auf einigen Microsoft-Plattformen beträgt die maximale übertragbare Datengröße 64.000. Gestalten Sie Ihre Anwendung neu, sodass alle übertragenen Daten innerhalb der maximal übertragbaren Größe passen.
MIDL2220
Strukturgröße überschreitet 65536 Byte
Auf einigen Microsoft-Plattformen beträgt die maximale übertragbare Datengröße 64.000. Gestalten Sie Ihre Anwendung neu, sodass alle übertragenen Daten innerhalb der maximal übertragbaren Größe passen.
MIDL2221
Das Feld einer nicht gekapselten Union darf keine andere nicht gekapselte Union sein.
Unions, die im Rahmen eines Remoteprozeduraufrufs übertragen werden, benötigen ein zugeordnetes Datenelement, den Diskriminanten, der den Union-Arm auswählt. Gewerkschaften, die in anderen Gewerkschaften geschachtelt sind, bieten keine Diskriminanz; daher können sie in dieser Form nicht übertragen werden. Erstellen Sie eine Struktur, die aus der Union und ihrer Diskriminanz besteht.
MIDL2222
Zeigerattribute, die auf ein eingebettetes Array angewendet werden; Ignoriert
Ein Zeiger-Attribut kann nur auf ein Array angewendet werden, wenn das Array ein Parameter der obersten Ebene ist. Andere Zeigerattribute, die auf Arrays angewendet werden, die in andere Datenstrukturen eingebettet sind, werden ignoriert.
MIDL2223
[allocate] ist für den übertragenen oder präsentierten Typ für [transmit_as], [represent_as], [wire_marshal] oder [user_marshal] unzulässig.
Die Attribute [transmit_as] und [allocate] können nicht beide auf denselben Typ angewendet werden. Das [transmit_as]-Attribut unterscheidet zwischen präsentierten und übertragenen Typen, während das [allocate]-Attribut davon ausgeht, dass der dargestellte Typ mit dem übertragenen Typ identisch ist.
MIDL2224
[switch_type] muss in diesem Importmodus angegeben werden.
MIDL2225
[implicit_handle] typ undefined; Annahme eines generischen Handles
Der im ACF angegebene Handletyp ist in der IDL-Datei nicht definiert. Der MIDL-Compiler geht davon aus, dass der Handletyp in den primitiven Handletyp aufgelöst wird handle_t. Fügen Sie der Typdefinition das Attribut [handle] hinzu, wenn sich das Handle wie ein benutzerdefiniertes oder generisches Handle verhält.
MIDL2226
array-Element darf nicht von error_status_t abgeleitet werden
In dieser Version von Microsoft RPC kann der Typ error_status_t nur als Parameter oder Rückgabetyp angezeigt werden. Sie kann nicht in Arrays angezeigt werden.
MIDL2227
[allocate] unzulässig für einen Typ, der von einem primitiven/generischen/Kontexthandle abgeleitet ist
Standardmäßig kann das ACF-Attribut [allocate] nicht auf Behandlungstypen angewendet werden.
MIDL2228
übertragene oder dargestellte Typen dürfen nicht von error_status_t abgeleitet werden.
In dieser Version von Microsoft RPC kann der Typ error_status_t nicht mit dem [transmit_as]-Attribut verwendet werden.
MIDL2229
Diskriminant einer Union darf nicht von einem Feld abgeleitet werden, auf das [ignore] angewendet wird
Eine Union, die in einem Remoteprozeduraufruf verwendet wird, muss einem anderen Datenelement zugeordnet werden, das als Diskriminant bezeichnet wird und das den Union-Arm auswählt. Das Diskriminanzmittel muss übertragen werden. Das [ignore]-Attribut kann nicht auf die Union-Diskriminanz angewendet werden.
MIDL2230
[nocode] für serverseitig ignoriert, da "/server none" nicht angegeben wurde
Einige DCE-IDL-Compiler generieren einen Fehler, wenn das [nocode]-Attribut auf eine Prozedur in einer Schnittstelle angewendet wird, für die Serverstubdateien generiert werden. Da der Server alle Vorgänge unterstützen muss, darf [nocode] nicht auf eine Prozedur in diesem Modus angewendet werden, oder Sie müssen den MIDL-Compilerschalter /server none verwenden, um explizit anzugeben, dass keine Serverroutinen generiert werden sollen.
MIDL2231
keine Remoteprozeduren, die in einer nicht[lokalen] Schnittstelle angegeben sind; Es werden keine Client-/Server-Stubs generiert.
Die bereitgestellte Schnittstelle verfügt über keine Remoteprozeduren, sodass nur Headerdateien generiert werden.
MIDL2232
Zu viele Standardfälle, die für gekapselte Union angegeben sind
Eine gekapselte Union kann nur einen Standard aufweisen: arm.
MIDL2233
Zu viele Standardschnittstellen, die für die Co-Klasse angegeben sind
Eine Co-Klasse kann höchstens zwei [Standard]-Member haben, eines zur Darstellung der ausgehenden (Quell-)Schnittstelle oder Dispinterface und eines zur Darstellung der eingehenden Schnittstelle (Senke) oder Dispinterface.
MIDL2234
Elemente mit [defaultvtable] müssen auch [source] aufweisen.
Die defaultvtable-Schnittstelle erstellt eine zweite Quellschnittstelle für ein -Objekt, mit der Senken Ereignisse über die V-Tabelle empfangen können.
MIDL2235
Union-Spezifikation ohne Felder ist unzulässig
Unions muss über mindestens ein Feld verfügen.
MIDL2236
Wert außerhalb des Bereichs
Der angegebene Fallwert liegt außerhalb des Bereichs des Switchtyps.
MIDL2237
[context_handle] muss auf einen Zeigertyp angewendet werden.
Kontexthandles müssen immer Zeigertypen sein. DCE gibt an, dass alle Kontexthandles als void * eingegeben werden müssen.
MIDL2238
Rückgabetyp darf nicht von handle_t abgeleitet werden
handle_t kann nicht zurückgegeben werden.
MIDL2239
[handle] darf nicht auf einen Typ angewendet werden, der von einem Kontexthandle abgeleitet ist.
Ein Typ kann nicht sowohl ein Kontexthandle als auch ein generisches Handle sein.
MIDL2240
Von einem "int" abgeleitetes Feld muss den Größenbezeichner "small", "short" oder "long" mit dem "int" aufweisen.
Der Typ int ist auf 16-Bit-Systemen nicht übertragbar, da die Größe von int auf verschiedenen Computern unterschiedlich sein kann.
MIDL2241
-Feld darf nicht von einem "void" oder "void" abgeleitet werden *
void und void * können nicht als Parametertypen für Remoteprozeduren verwendet werden.
MIDL2242
-Feld darf nicht von einer Struktur abgeleitet werden, die Bitfelder enthält.
Strukturen, die Bitfelder enthalten, können nicht als Parameter oder Rückgabetypen für Remoteprozeduren verwendet werden.
MIDL2243
-Feld darf nicht von einer Nicht-Rpcable-Union abgeleitet werden
Eine Union muss als nicht gekapselte Union oder gekapselte Union angegeben werden, um übertragen zu werden. Normale C-Gewerkschaften haben nicht die Unterscheidung, die erforderlich ist, um die Union über das Netzwerk zu übertragen.
MIDL2244
-Feld darf nicht von einem Zeiger auf eine Funktion abgeleitet werden
Zeiger auf Funktionen können nicht an Remoteprozeduren übertragen werden. Zeiger auf Funktionen verweisen auf Funktionscode, und mit RPC kann kein Funktionscode über das Netzwerk übertragen werden.
MIDL2245
[fault_status] kann nicht sowohl für einen Parameter als auch für einen Rückgabetyp verwendet werden.
Das Attribut [fault_status] kann nur einmal pro Prozedur verwendet werden. Das [comm_status]-Attribut kann unabhängig verwendet werden.
MIDL2246
Rückgabetyp zu kompliziert für /Oi-Modi mit /Os
Große Rückgabetypen, die als Wert übergeben werden, können nur von / Os-Optimierungsstubs verarbeitet werden. Die Stubs für diese Routine werden mithilfe der /Os-Optimierung generiert.
MIDL2247
generischer Handletyp zu groß für /Oi-Modi mit /Os
Große generische Handletypen, die als Wert übergeben werden, können nur von / Os-Optimierungsstubs verarbeitet werden. Die Stubs für diese Routine werden mithilfe der /Os-Optimierung generiert.
MIDL2248
[allocate(all_nodes)] für einen [in,out]-Parameter kann den ursprünglichen Speicher verwaisten.
Die Verwendung von [allocate(all_nodes)] für einen [in, out]-Parameter muss den zusammenhängenden Speicher für die [out]-Richtung neu zuordnen, wodurch der Parameter [in] verwaist wird. Diese Verwendung wird nicht empfohlen.
MIDL2249
Kein [ref]-Zeiger als Union-Arm
Verweiszeiger müssen immer auf gültigen Arbeitsspeicher verweisen, aber eine [in, out]-Union mit einem Verweiszeiger kann einen Verweiszeiger zurückgeben, wenn die [in]-Richtung einen anderen Typ verwendet hat.
MIDL2250
Rückgabe von Kontexthandles, die für /Oi-Modi nicht unterstützt werden, mithilfe von /Os
MIDL unterstützt keine Kontexthandles in den vollständig interpretierten Optimierungsmodi. Wechseln zur Optimierung im gemischten Modus.
MIDL2251
Verwendung des zusätzlichen [comm_status] oder [fault_status]-Parameters, der für /Oi-Modi nicht unterstützt wird, mithilfe von /Os
Die Attribute [comm_status] und [fault_status] können nur von /Os-Optimierungsstubs verarbeitet werden. Die Stubs für diese Routine werden mithilfe der /Os-Optimierung generiert.
MIDL2252
Verwendung eines unbekannten Typs für [represent_as] oder [user_marshal] nicht unterstützt für /Oi-Modi, unter Verwendung von /Os
Die Verwendung des [represent_as]-Attributs mit einem lokalen Typ, der nicht in der IDL-Datei definiert ist, oder einer importierten IDL-Datei kann nur von /Os-Optimierungsstubbs verarbeitet werden. Die Stubs für diese Routine werden mithilfe der /Os-Optimierung generiert.
MIDL2253
Arraytypen mit [transmit_as] oder [represent_as] werden beim Rückgabetyp für /Oi-Modi nicht unterstützt, wobei /Os verwendet wird.
Das Zurückgeben eines Arrays mit angewendetem [transmit_as] oder [represent_as] kann nur von /Os-Optimierungsstubs verarbeitet werden. Die Stubs für diese Routine werden mithilfe der /Os-Optimierung generiert.
MIDL2254
Arraytypen mit [transmit_as] oder [represent_as] werden für /Oi-Modi nicht unterstützt.
Diese Aktion wird für die vollständig interpretierte Optimierung nicht unterstützt. Wechseln zur Optimierung im gemischten Modus.
MIDL2255
[Rückruf] erfordert /ms_ext
Das [Rückruf]-Attribut ist eine Microsoft-Erweiterung und erfordert, dass der Schalter /ms_ext aktiviert ist. Kompilieren Sie nicht mit /osf, wodurch /ms_ext außer Kraft gesetzt wird.
MIDL2256
Zirkelschnittstellenabhängigkeit
Diese Schnittstelle verwendet sich selbst (direkt oder indirekt) als Basisschnittstelle.
MIDL2257
Nur IUnknown darf als Stammschnittstelle verwendet werden.
Derzeit muss für alle Schnittstellen IUnknown als Stammschnittstelle verwendet werden.
MIDL2258
[IID_IS] kann nur auf Zeiger auf Schnittstellen angewendet werden.
Das [iid_is]-Attribut kann nur auf Schnittstellenzeiger angewendet werden, obwohl sie als Zeiger auf IUnknown * angegeben werden können.
MIDL2259
Schnittstellen dürfen nur in Pointer-to-Interface-Konstrukten verwendet werden.
Schnittstellennamen können nur als Basisschnittstellen oder Schnittstellenzeiger verwendet werden.
MIDL2260
Schnittstellenzeiger müssen über eine UUID/IID verfügen
Der Basistyp des [iid_is]-Ausdrucks muss ein UUID/GUID/IID-Typ sein.
MIDL2261
Definitionen und Deklarationen außerhalb des Schnittstellentexts erfordern /ms_ext
Das Platzieren von Deklarationen und Definitionen außerhalb eines Schnittstellentexts ist eine Microsoft-Erweiterung und erfordert die Verwendung des Schalters /ms_ext .
MIDL2262
Mehrere Schnittstellen in einer Datei erfordern /ms_ext
Die Verwendung mehrerer Schnittstellen in einer einzelnen idl-Datei ist eine Microsoft-Erweiterung und nicht verfügbar, wenn Sie im /osf-Modus kompilieren.
MIDL2263
nur eine der zulässigen [implicit_handle], [auto_handle] oder [explicit_handle]
Jede Schnittstelle kann nur eines dieser drei Attribute aufweisen.
MIDL2264
[implicit_handle] verweist auf einen Typ, der kein Handle ist.
Implizite Handles müssen von einem der Handletypen sein.
MIDL2265
[object]-Procs dürfen nur mit "/env win32" verwendet werden.
Schnittstellen mit dem [object]-Attribut können nicht mit 16-Bit-Umgebungen verwendet werden.
MIDL2266
[Rückruf] mit -env dos/win16 wird für /Oi nicht unterstützt, wobei /Os verwendet wird
Rückrufe in 16-Bit-Umgebungen können nur von / Os-Optimierungsstubs verarbeitet werden. Die Stubs für diese Routine werden mithilfe der /Os-Optimierung generiert.
MIDL2267
float/double wird nicht als Parameter der obersten Ebene für den /Oi-Modus mit /Os unterstützt.
Die Typen float und double können nur von den / Os-Optimierungsstubs als Parameter behandelt werden. Die Stubs für diese Routine werden mithilfe der /Os-Optimierung generiert. Die Float- und Double-Typen in Strukturen, Arrays oder Unions können weiterhin mit/Os verarbeitet werden.
MIDL2268
Zeiger auf Kontexthandles dürfen nicht als Rückgabewerte verwendet werden.
Kontexthandles müssen als direkte Rückgabewerte verwendet werden, nicht als indirekte Rückgabewerte.
MIDL2269
Prozeduren in einer Objektschnittstelle müssen ein HRESULT zurückgeben.
Alle Prozeduren in einer Objektschnittstelle, die nicht über das -[local]-Attribut verfügen, müssen einen HRESULT-SCODE/ zurückgeben.
MIDL2270
Doppelte UUID
Identisch mit UUIDs müssen eindeutig sein.
MIDL2271
[object]-Schnittstellen müssen von einer anderen [Objekt]-Schnittstelle abgeleitet werden, z. B. IUnknown
Die Schnittstellenvererbung ist nur zulässig, wenn Sie Objektschnittstellen verwenden.
MIDL2272
(asynchrone) Schnittstelle muss von einer anderen (asynchronen) Schnittstelle abgeleitet werden
Objektschnittstellen, sowohl synchron als auch asynchron, müssen von IUnknown oder einer anderen OLE-Basisschnittstelle abgeleitet werden.
MIDL2273
[IID_IS] Ausdruck muss ein Zeiger auf die IID-Struktur sein.
Der Basistyp des [iid_is]-Ausdrucks muss ein UUID/GUID/IID-Typ sein.
MIDL2274
[call_as]-Typ muss eine [lokale] Prozedur sein.
Auf das Ziel eines [call_as]-Typs muss [ local] angewendet werden, sofern es definiert ist.
MIDL2275
Undefined [call_as] darf nicht in einer Objektschnittstelle verwendet werden
Sie müssen das Ziel eines [call_as]-Typs definieren. Stellen Sie sicher, dass Sie call_as Routinen sowohl für die aufrufenden als auch für die aufgerufenen Anwendungen bereitgestellt haben.
MIDL2276
[auto_handle] darf nicht mit [codieren] oder [decodieren] verwendet werden.
Die Attribute [ codieren] und [ decodieren] können nur mit expliziten Handles oder impliziten Handles verwendet werden.
MIDL2277
Normale Prozeduren sind in einer Schnittstelle mit [codieren] oder [decodieren] nicht zulässig.
Schnittstellen, die Prozeduren [codieren] oder [decodieren] enthalten, können nicht auch Remoteprozeduren enthalten.
MIDL2278
Konformität oder Varianz der obersten Ebene ist mit [codieren] oder [Decodieren] nicht zulässig.
Typen mit Konformität oder Varianz auf oberster Ebene können die Typserialisierung nicht verwenden, da es keine Möglichkeit gibt, die Größen-/Längenanpassung bereitzustellen. Strukturen, die sie enthalten, dürfen jedoch die Typserialisierung verwenden.
MIDL2279
[out]-Parameter haben möglicherweise nicht "const"
Da ein [out]-Parameter geändert wird, darf er nicht als sa-Konstante deklariert werden.
MIDL2280
Rückgabewerte haben möglicherweise nicht "const"
Da ein Funktionswert festgelegt wird, wenn die Funktion zurückgibt, darf dieser Wert nicht als Konstante deklariert werden.
MIDL2281
ungültige Verwendung des Attributs "retval"
Stellen Sie sicher, dass Sie nicht das Attribut [optional] verwendet haben und dass der [retval]-Parameter der letzte Parameter in der Liste ist.
MIDL2282
Mehrere Aufrufkonventionen illegal
Auf eine einzelne Prozedur kann nur eine Aufrufkonvention angewendet werden.
MIDL2283
Attribut unzulässig für [Objekt]-Prozedur
Das obige Attribut gilt nur für Prozeduren in Schnittstellen, die nicht über das Attribut [object] verfügen.
MIDL2284
[out] Schnittstellenzeiger müssen doppelte Dereferenzierung verwenden
Da der geänderte Wert der Zeiger auf die Schnittstelle ist, muss über dem Zeiger eine weitere Dereferenzierungsebene vorhanden sein, damit er zurückgegeben werden kann.
MIDL2285
Prozedur, die doppelt so verwendet wird wie der Aufrufer in [call_as]
Eine bestimmte [lokale] Prozedur kann nur einmal als Ziel eines [call_as] verwendet werden, um Namenskonflikte zu vermeiden.
MIDL2286
[call_as] Ziel muss [lokal] in einer Objektschnittstelle enthalten sein.
Das Ziel eines [call_as] muss eine definierte [lokale] Prozedur in der aktuellen Schnittstelle sein.
MIDL2287
[code] und [nocode] dürfen nicht zusammen verwendet werden
Diese beiden Attribute sind widersprüchlich und können nicht zusammen verwendet werden.
MIDL2288
Prozeduren mit [maybe]- oder [message]-Attributen haben möglicherweise keine [out]-Parameter, oder Rückgabewerte müssen vom Typ HRESULT oder error_status_t
Da [vielleicht] Prozeduren nie zurückgegeben werden, gibt es keine Möglichkeit, Rückgabewerte abzurufen.
MIDL2289
Der Zeiger auf die Funktion muss verwendet werden.
Funktionstypdefinitionen sind zwar im Modus /c_ext zulässig, können aber nur als Zeiger auf Funktionen verwendet werden. Sie können nie als Parameter oder Rückgabewert einer Remoteprozedur übertragen werden.
MIDL2290
Funktionen werden in einem RPC-Vorgang möglicherweise nicht übergeben.
Funktionen und Funktionszeiger können nicht als Parameter oder Rückgabewerte von Remoteprozeduren übergeben werden.
MIDL2291
hyper/double wird nicht als Rückgabewert für /Oi-Modi mit /Os unterstützt
Hyper- und Double-Rückgabewerte können nur von / Os-Optimierungsstubs verarbeitet werden. Die Stubs für diese Routine werden mithilfe der /Os-Optimierung generiert.
MIDL2292
#pragma pack(pop) ohne übereinstimmende #pragma Pack(push)
#pragma pack(push) und #pragma pack(pop) müssen in übereinstimmenden Paaren angezeigt werden. Mindestens eine zu viele #pragma Pack(push)s wurden angegeben.
MIDL2293
zeichenfolgenfähige Strukturfelder müssen byte/char/wchar_t
Der Typ [Zeichenfolge] kann nur auf eine Struktur angewendet werden, deren Felder alle vom Typ Byte sind, oder auf eine Typdefinition, die byte entspricht.
MIDL2294
[benachrichtigen] wird für /Oi-Modi nicht unterstützt, wobei /Os verwendet wird
Das [notify]-Attribut kann nur von /Os-Optimierungsstubs verarbeitet werden.
MIDL2295
Handle-Parameter oder Rückgabetyp wird für eine Prozedur in einer [Objekt]-Schnittstelle nicht unterstützt.
Handles können nicht mit [ -Objekt]-Schnittstellen verwendet werden.
MIDL2296
ANSI C lässt nur zu, dass das linksste Array nicht angegeben wird.
In einem konformen Array lässt ANSI C nur das linke (wichtigste) Array nicht angegeben werden. Wenn mehrere Dimensionen konform sind, versucht MIDL, eine "1" in die anderen konformen Dimensionen zu setzen. Wenn die anderen Dimensionen in einer anderen Typdefinition definiert sind, kann dies nicht möglich sein. Versuchen Sie, alle Arraydimensionen in der Arraydeklaration zu platzieren, um dies zu vermeiden. Achten Sie auf jeden Fall auf die Arrayindizierungsberechnungen, die vom Compiler durchgeführt werden. Möglicherweise müssen Sie eigene Berechnungen mit den tatsächlichen Größen durchführen.
MIDL2297
By-Value-Union-Parameter werden für /Oi-Modi nicht unterstützt, wobei /Os verwendet wird
Diese Aktion wird für die vollständig interpretierte Optimierung nicht unterstützt. Wechsel zur Optimierung im gemischten Modus.
MIDL2298
[version]-Attribut wird auf einer [Object]-Schnittstelle ignoriert.
Das Attribut [object] identifiziert eine COM-Schnittstelle. Eine Schnittstellenattributeliste für eine COM-Schnittstelle kann das Attribut [ version] nicht enthalten.
MIDL2299
[size_is]- oder [max_is]-Attribut ist in einem festen Array ungültig.
Arrays mit fester Größe können nicht die Attribute size_is oder max_is verwenden.
MIDL2300
[Codieren] oder [Decodierung] sind in einer [Objekt]-Schnittstelle ungültig.
Das Attribut [object] identifiziert eine COM-Schnittstelle. Die Attribute [codieren] und [ decodierung] ermöglichen die Serialisierung. Das heißt, Sie können Puffer für Data Marshal und Unmarshal bereitstellen und steuern. Sie können jedoch keine Serialisierung auf COM-Schnittstellen durchführen.
MIDL2301
[codieren] oder [decodieren] für einen Typ erfordert /ms_ext
Die Serialisierung ist nicht Teil der DCE-IDL-Spezifikation. Es handelt sich um eine Microsoft-Erweiterung, die die Verwendung des Befehlszeilenschalters /ms_ext erfordert.
MIDL2302
int wird in /env win16 oder /env dos nicht unterstützt.
Die 16-Bit-Microsoft-Plattformen unterstützen die Verwendung des int-Typs in einer IDL-Datei nicht. Qualifizieren Sie den int-Typ mit klein, kurz oder lang.
MIDL2303
[bstring] kann nur auf einen Zeiger auf "char" oder "whchar_t" angewendet werden.
Dieser Fehler ist veraltet. Sie wird nur aus Gründen der Abwärtskompatibilität bereitgestellt.
MIDL2304
Ungültiges Attribut für eine Prozedur in einer [Objekt]-Schnittstelle
Das angegebene Attribut ist für eine Prozedur in einer COM-Schnittstelle nicht zulässig.
MIDL2305
Ungültiges Attribut für eine [Objekt]-Schnittstelle
Das angegebene Attribut ist in einer COM-Schnittstelle nicht zulässig.
MIDL2306
Zu viele Parameter oder Stapel zu groß für /Oi-Modi mit /Os
Diese Warnung ist veraltet. Sie wird nur aus Gründen der Abwärtskompatibilität bereitgestellt. Sie gibt an, dass der Stapel durch den Aufruf der Remoteprozedur größer als 64 K wird.
MIDL2307
keine Attribute für ACF-Dateitypdef, also keine Auswirkung
Die IDL-Datei sollte alle typedef-Anweisungen enthalten, die keine Attribute aufweisen. Sie sollten nicht in ACF-Dateien auftreten. Wenn sie dies tun, interpretiert der MIDL-Compiler sie als redundant und ignoriert sie.
MIDL2308
Andere Konventionen als __stdcall oder __cdecl für /Oi-Modi nicht unterstützt, wobei /Os verwendet wird
Durch Aufrufen von Konventionen wie __pascal oder __fastcall das Format des Stapels geändert werden. Die /Oi-Modi unterstützen nur die __stdcall - und __cdecl Aufrufkonventionen. Wenn Sie andere Aufrufkonventionen verwenden müssen, verwenden Sie den /Os-Modus .
MIDL2309
Zu viele Delegierungsmethoden in der Schnittstelle erfordern Windows 2000 oder höher
Eine Schnittstelle kann von einer anderen erben. Wenn dies der Fall ist, werden die Methoden der Basisschnittstelle als delegiert betrachtet. Keine abgeleitete Schnittstelle darf mehr als 256 delegierte Methoden enthalten.
MIDL2310
Automatische Handles werden mit /env mac oder /env powermac nicht unterstützt
Wenn Sie Ihre IDL-Datei für einen PowerMac kompilieren, können Sie keine automatischen Bindungshandles verwenden. Sie müssen explizite oder implizite Handles angeben.
MIDL2311
Anweisungen außerhalb des Bibliotheksblocks sind im mktyplib-Kompatibilitätsmodus unzulässig.
Möglicherweise müssen Sie die Befehlszeilenoption /mktyplib203 angeben, wenn Sie Ihre IDL-Datei kompilieren.

Hinweis:
Das Mktyplib.exe-Tool ist veraltet. Verwenden Sie stattdessen den MIDL-Compiler.


MIDL2312
unzulässige Syntax, sofern nicht mktyplib-Kompatibilitätsmodus verwendet wird
Möglicherweise müssen Sie die Befehlszeilenoption /mktyplib203 angeben, wenn Sie Ihre IDL-Datei kompilieren.

Hinweis:
Das Mktyplib.exe-Tool ist veraltet. Verwenden Sie stattdessen den MIDL-Compiler.


MIDL2313
Unzulässige Definition, muss typedef im mktyplib-Kompatibilitätsmodus verwenden
Möglicherweise müssen Sie den Befehlszeilenschalter /mktyplib203 angeben, wenn Sie Ihre IDL-Datei kompilieren.

Hinweis:
Das tool Mktyplib.exe ist veraltet. Verwenden Sie stattdessen den MIDL-Compiler.


MIDL2314
Explizites Zeiger-Attribut [ptr] [ref] für Schnittstellenzeiger ignoriert
Zeiger auf Schnittstellen können keine IDL-Attribute aufweisen.
MIDL2315
/Oi-Modi nicht für PowerMac implementiert, wechselt zu /Os
MIDL2316
Ungültiger Ausdruckstyp, der im Attribut verwendet wird
Der Standardwert für den Zeiger sollte eine Konstante sein.
MIDL2317
Unzulässiger Typ, der in der Pipe verwendet wird
Pipes sind auf grundlegende IDL-Datentypen beschränkt. Sie können z. B. keine Pipeline von Arrays angeben.
MIDL2318
-Prozedur verwendet Pipes mithilfe von /Oicf
Der ausgewählte Modus unterstützt keine Pipes. Der MIDL-Compiler hat die Verwendung einer oder mehrerer Pipes in Ihrer Schnittstelle erkannt. Daher kompiliert sie Ihre IDL-Datei im /Oicf-Modus .
MIDL2319
-Prozedur verfügt über ein Attribut, das die Verwendung von /Oif erfordert, wobei die Modi gewechselt werden.
Sie müssen [async]-Prozeduren im /Oif-Modus kompilieren.
MIDL2320
In Konflikt stehende Optimierungsanforderungen können nicht optimiert werden.
Dieser Fehler weist häufig darauf hin, dass Sie sowohl die MIDL-Compilermodi /Os als auch /Oi (oder eine Variante von /Oi) angegeben haben. Dies kann auch bedeuten, dass die features, die Sie in Ihren IDL- und ACL-Dateien angegeben haben, die Verwendung beider Modi erfordern. Sie müssen den einen oder den anderen Modus für die Optimierung auswählen.
MIDL2321
Pipes dürfen nicht Arrayelemente oder Member von Strukturen oder Unions sein.
Pipedatentypen können nur Parameter der obersten Ebene sein.
MIDL2322
Ungültige Pipeverwendung
Sie können Pipes nicht mit den Attributen [transmit_as], [represent_as] oder [user_marshal] verwenden. Darüber hinaus können Pipes nicht als Rückgabetypen verwendet werden.
MIDL2323
-Funktion erfordert die erweiterte interpretierte Optimierungsoption; use -Oicf
Dieser Fehler gibt an, dass BEFEHLSZEILEnoptionen des MIDL-Compilers wie /robust die Verwendung des /Oicf-Modus erfordern.
MIDL2324
-Funktion erfordert die erweiterte interpretierte Optimierungsoption; use -Oicf
Diese Warnung gibt an, dass Befehlszeilenoptionen des MIDL-Compilers wie /robust die Verwendung des /Oicf-Modus erfordern.
MIDL2329
Die Optimierungsoption wird schrittweise eingestellt, verwenden Sie -Oic.
Der / Oi1-Optimierungsmodus wurde in der MIDL-Befehlszeile angegeben. Dieser Modus wird nicht mehr unterstützt, und stattdessen sollte /Oicf verwendet werden.
MIDL2330
Die Optimierungsoption wird schrittweise eingestellt, verwenden Sie -Oicf.
Der /Oi2-Optimierungsmodus wurde in der MIDL-Befehlszeile angegeben. Dieser Modus wird nicht mehr unterstützt, und stattdessen sollte /Oicf verwendet werden.
MIDL2331
die Optimierungsoption wird schrittweise eingestellt, verwenden Sie -ic
Der Optimierungsmodus i1 wurde in einem [optimize]-ACF-Attribut angegeben. Dieser Modus wird nicht mehr unterstützt, und stattdessen sollte icf verwendet werden.
Beispiel-ACF-Datei:
[optimize("i1")] roo();    //MIDL 2331
MIDL2332
Die Optimierungsoption wird schrittweise eingestellt, verwenden Sie -icf.
Der i2-Optimierungsmodus wurde in einem [optimize]-ACF-Attribut angegeben. Dieser Modus wird nicht mehr unterstützt, und stattdessen sollte icf verwendet werden.
Beispiel-ACF-Datei:
[optimize("i2")] roo();    //MIDL 2332
MIDL2333
die Schalter "-old" und "-new" sind veraltet. Verwenden Sie "-oldtlb" und "-newtlb".
Diese Meldung ist veraltet und wird von MIDL nicht mehr ausgelassen.
MIDL2334
Ungültiger Argumentwert
Zu den zulässigen Varianten der Befehlszeilenoption /O gehören /Os, /Oi, /Oic, /Oicf und /Oif.
MIDL2335
Unzulässiger Ausdruckstyp in konstant
Der Ausdruck wird nicht zu einer Konstanten ausgewertet.
MIDL2336
Unzulässiger Ausdruckstyp in der Enumeration
Ein enumerierter Wert in einer Enumerationsdefinition wird nicht zu einem integralen Typ ausgewertet.
MIDL2337
Nicht zufriedene Forward-Deklaration
Der MIDL-Compiler konnte die Definition einer Vorwärtsdeklaration nicht auflösen.
MIDL2338
Schalter sind widersprüchlich
Sie können beim Kompilieren einer IDL-Datei nicht sowohl die Befehlszeilenoptionen /osf als auch /ms_ext verwenden. Sie müssen das eine oder das andere auswählen.
MIDL2339
MIDL kann keine HOOKOLE-Informationen für die nicht rpcfähige Union generieren.
Dieser Fehler ist veraltet. Es wird ausschließlich aus Gründen der Abwärtskompatibilität bereitgestellt.
MIDL2340
Kein Fallausdruck für union gefunden
Jedes Feld einer Union muss über eine Case-Anweisung mit einem konstanten Ausdruck verfügen.
MIDL2341
[user_marshal] und [wire_marshal] werden mit den Flags "-Oi" und "-Oic" nicht unterstützt. Verwenden Sie "-Os" oder "-Oicf".
Die Attribute [user_marshal] und [wire_marshal] erfordern die spezifischen Optimierungsfeatures, die nur in /Oicf (codeloser Proxy mit schnellen Formatzeichenfolgen) oder /Os (Marshalling im gemischten Modus) verfügbar sind.
MIDL2342
Pipes können nicht mit der Datenserialisierung verwendet werden, d. h. [codieren] und/oder [decodieren]
Sie können Pipes nicht als Parameter an Prozeduren übergeben, die die Attribute [codieren] oder [decodieren] haben.
MIDL2343
Alle Pipeschnittstellenzeiger müssen eine einzelne Dereferenzierung verwenden.
Sie können auf diese Weise keinen Zeiger auf einen Zeiger auf eine Pipeschnittstelle verwenden.
MIDL2344
[iid_is()] kann nicht mit einem Pipeschnittstellenzeiger verwendet werden.
Diese Meldung ist veraltet. Diese Meldung wird vom Compiler nicht mehr verwendet.
MIDL2345
Ungültiger oder nicht anwendungsfähiger -lcid-Schalter
Der von Ihnen angegebene lokale Bezeichner (LCID) ist ungültig.
MIDL2346
Der angegebene Lcid unterscheidet sich von der vorherigen Spezifikation.
Die in /lcid und [lcid] angegebenen Werte unterscheiden sich. Der MIDL-Compiler verwendet den zuletzt definierten.
MIDL2347
importlib ist außerhalb eines Bibliotheksblocks nicht zulässig.
Alle [importlib]-Anweisungen sollten in einem [library]-Block auftreten.
MIDL2348
Ungültiger Gleitkommawert
Dieser Fehler sollte nicht von MIDL ausgegeben werden. Wenn dieser Fehler angezeigt wird, melden Sie microsoft einen Fehler, der alle Dateien bereitstellt, die zum Reproduzieren des Fehlers erforderlich sind, einschließlich Ihrer IDL-Dateien, ACF-Dateien, Header usw.
MIDL2349
Ungültiges Element
Prozeduren dürfen keine Mitglieder einer Bibliothek sein.
MIDL2350
möglicherweise ungültiges Element
Um ein gültiges Element einer Bibliothek zu sein, muss das Bibliothekselement ein Modul, eine Dispinterface, eine Co-Klasse, eine if-Anweisung, eine Struktur, eine Union, eine Enumeration oder eine Forwarddeklaration sein.
MIDL2351
Nichtübereinstimmung in Pipe- und Schnittstellentypen
Diese Meldung ist veraltet.
MIDL2352
Zeichenfolge, unterschiedliche Arrays, konformes Array und vollständige Zeigerparameter können während der Laufzeit mit Pipeparametern nicht kompatibel sein.
Eine Methode, die eine oder mehrere [in]-Zeichenfolgen, unterschiedliche Arrays, konforme Arrays und vollständige Zeigerparameter und alle [in]-Pipeparameter kombiniert, führt zur Generierung eines Stubs, der nur auf ncacn_*- und ncalrpc-Protokollsequenzen auf Windows-Computern ausgeführt wird. Die Verwendung des Stubs zum Ausführen von Aufrufen von ncadg_*- Protokollsequenzen oder zum Annehmen von Aufrufen von anderen OSF DCE RPC-Anbietern kann während der Laufzeit Zu Fehlern auf dem Server führen. Dieser Fehler tritt ab Windows Server 2003 auf.
MIDL2353
Parameter muss in sein
Asynchrone Handles müssen [in]-Parameter sein.
MIDL2354
Der Parametertyp eines [async]-Objekts muss ein doppelter Zeiger auf eine Schnittstelle sein.
Der Parameter muss vom Typ IAsyncManager ** sein.
MIDL2355
Falscher asynchroner Handletyp
Der Handletyp sollte IAsyncManager oder ein von IAsyncManager abgeleiteter Typ sein.
MIDL2356
der "interne" Switch aktiviert nicht unterstützte Features, verwenden Sie mit Vorsicht.
Vermeiden Sie die Verwendung dieses Schalters.
MIDL2357
Asynchrone Prozeduren können kein automatisches Handle verwenden
Prozeduren mit dem [async]-Attribut erfordern explizite Handles.
MIDL2358
error_status_t sollte sowohl [comm_status] als auch [fault_status] haben.
Eine Prozedur wurde mit den IDL-Attributen [vielleicht] oder [Meldung] angegeben, aber der Rückgabetyp verfügt nur über die ACF-Attribute [comm_status] oder [fault_status]. Beide ACF-Attribute sind erforderlich.
Beispiel-ACF-Datei:
[comm_status] roo();    //MIDL 2358
[fault_status] bar();    //MIDL 2358
[comm_status, fault_status] baz();    //OK
MIDL2359
Dieses Konstrukt ist nur innerhalb eines Bibliotheksblocks zulässig.
Ein Modul kann nur innerhalb eines Bibliotheksblocks auftreten.
MIDL2360
Ungültige Neudefinition des Typs
Ein neuer Typ wurde rekursiv für einen nicht vorhandenen Typ definiert.
Beispiel:
typedef roo roo[10];    //MIDL 2360
MIDL2361
Prozeduren mit einem [vararg]-Attribut müssen über einen SAFEARRAY(VARIANT)-Parameter verfügen. Die Paramreihenfolge ist [vararg], [lcid], [retval]
Die meisten Parameter für Prozeduren mit dem [vararg]-Attribut müssen vor dem SAFEARRAY(VARIANT)- Parameter auftreten. Der SAFEARRAY(VARIANT) -Parameter muss vorhanden sein. Wenn die Parameterliste einen Parameter mit dem Attribut [ lcid] enthält, muss sie dem SAFEARRAY(VARIANT) -Parameter folgen. Wenn die Parameterliste einen Parameter mit dem [retval]-Attribut enthält, muss er nach dem Parameter mit dem [lcid]-Attribut auftreten.
MIDL2363
zu viele Methoden in der Schnittstelle, erfordert Windows 2000 oder höher
Der MIDL-Compiler lässt nicht mehr als 1024 Methoden in einer Schnittstelle zu, wenn Sie im /Oicf-Modus kompilieren.
MIDL2364
switch wird eingestellt
Die folgenden Schalter sind veraltet: /hookole, /env win16 und /env.
MIDL2365
kann nicht von IAdviseSink, IAdviseSink2 oder IAdviseSinkEx abgeleitet werden
Diese Schnittstellen können nicht erweitert werden.
MIDL2366
Zuweisen eines Standardwerts nicht
Das Zuweisen eines Standardwerts zu einem Parameter ist in Visual Basic zulässig, aber nicht in C++. Wenn Sie C++ verwenden, wird der Standardwert ignoriert.
MIDL2367
Die Typbibliotheksgenerierung für DOS/Win16/MAC wird nicht unterstützt.
MIDL unterstützt keine 16-Bit-Typbibliotheken.
MIDL2368
Fehler beim Generieren der Typbibliothek, ignoriert
Beim Generieren der Typbibliothek ist ein nicht schwerwiegender Fehler aufgetreten.
MIDL2369
Die Stapelgröße für "/Oi" wurde mit "/Os" überschritten.
Der Optimierungsmodus -Oi ist auf 128 Bytes Stapelspeicherplatz für Parameter beschränkt. Der Compiler hat automatisch in den Betriebssystemoptimierungsmodus gewechselt, um diese Einschränkung zu umgehen.
Um diese Warnung zu vermeiden, verwenden Sie die Optimierungsmodi -Oicf oder -Os. Der Optimierungsmodus kann in der Befehlszeile geändert werden, indem -Oicf oder -Os anstelle von -Oi angegeben wird oder durch Hinzufügen eines [optimize9"icf")- oder optimize[("s")]-Attributs zur Funktion in der ACF-Datei hinzugefügt wird.
Diese Warnung tritt in der Regel auf, wenn große Strukturen als Parameter nach Wert übergeben werden. Die erforderliche Stapelgröße kann verringert werden, indem stattdessen ein Zeiger auf die Struktur übergeben wird.
Beispiel:
typedef struct
{
char a[127];
}
large;
//This function has a stack size of 132 (x86) or 136 (alpha) on 32-bit systems
void roo(large s, int a);    //MIDL 2360
// workaround: pass by reference
void bar (large *s, int a);
MIDL2370
Die Verwendung von /robust erfordert /Oicf und wechselt die Modi.
Sie müssen im /Oicf-Modus kompilieren, wenn Sie den Schalter /robust in der Befehlszeile angeben.
MIDL2371
Falscher Bereich angegeben
Der höchste wert, der in einem [range]-Attribut angegeben ist, ist kleiner als der niedrigste Wert.
Beispiel:
void roo([range(3,2)] int a);    //MIDL 2371
MIDL2372
Ungültige Kombination von [in]-Parametern und [out]-Parametern für [async_uuid] Schnittstelle
Für diesen Schnittstellentyp sind nur einfache Kombinationen von Attributen mit Parametern [in] oder [out] zulässig.
MIDL2373
DOS-, Win16- und MAC-Plattformen werden mit /robust nicht unterstützt.
MIDL unterstützt den /robust-Switch unter Microsoft Windows 2000 oder höher.
MIDL2374
Die Unterstützung für stublose Proxys im NT 3.51-Format für Objektschnittstellen wird schrittweise eingestellt. verwenden Sie /Oif.
Dieser Modus ist veraltet. Verwenden Sie /Oif oder /Oicf.
MIDL2375
[codieren] oder [decodieren] mit /robust erfordert /Oicf
Die Serialisierung kann nicht ausgeführt werden, wenn der / robust-Schalter angegeben ist.
MIDL2377
Angabe von in Konflikt stehenden Attributen
Sowohl [context_handle_serialize] als auch [context_handle_noserialize] wurden angegeben.
MIDL2378
[serialisieren], [noserialize] können auf context_handles angewendet werden
Die ACF-Attribute [context_handle_serialize] oder [context_handle_noserialize] können nur auf Typen angewendet werden, die Kontexthandles sind.
Beispiel-IDL-Datei:
typedef /*[context_handle] */ void *PV;    //Note: PV is *not* a context handle.
Beispiel-ACF-Datei:
typedef [context_handle_serialize] PV;    //MIDL 2378
MIDL2379
Der Compiler hat ein Limit für eine Formatzeichenfolgendarstellung erreicht. Weitere Informationen finden Sie in der Dokumentation.
Der MIDL-Compiler hat einen Grenzwert von 64 KB für Formatzeichenfolgen. Dieser Fehler tritt im Allgemeinen auf, wenn IDL-Dateien andere IDL-Dateien enthalten. Die zusammengesetzte IDL-Datei, die von allen include-Anweisungen generiert wird, überschreitet die Grenzwerte der Typdarstellungstabellen des Marshalling-Engine-Interpreters. Versuchen Sie, die Importdirektive anstelle der include-Anweisung in Ihren IDL-Dateien zu verwenden. Weitere Informationen finden Sie unter Importieren von Systemheaderdateien, Einschließen und Importieren.
MIDL2380
Das Drahtformat ist möglicherweise falsch. Möglicherweise müssen Sie -ms_conf_struct verwenden. Weitere Informationen finden Sie in der Dokumentation.
Der MIDL-Compiler konnte kein übertragbares Format für die Daten generieren. Eine gängige Möglichkeit, diesen Fehler zu erhalten, besteht darin, einen ms_conf_struct innerhalb einer komplexen Struktur zu definieren.
MIDL2381
eine Stapelgröße oder ein Offset, der größer als 64 K ist. Weitere Informationen finden Sie in der Dokumentation.
Der Aufruf führt zu einem Stapel, der größer als 64 KB ist. Versuchen Sie, die Daten in kleineren Blöcken zu übergeben.
MIDL2382
Für eine 64-Bit-Plattform erzwungene Interpretermodus
64-Bit-Plattformen erfordern den Kompilierungsmodus /Oicf.
MIDL2383
Die Größe des Arrayelements ist größer als 64 KB.
Alle Arrayelemente müssen kleiner als 64 KB sein.
MIDL2384
Es kann nur einen [Icid]-Parameter in einer Methode geben, und er sollte der letzte oder zweite bis letzte sein, wenn der letzte Parameter [retval] hat.
Ein Parameter mit dem Attribut [lcid] muss zuletzt auftreten. Die einzige Ausnahme ist, wenn auch ein Parameter mit dem Attribut [retval] vorhanden ist. Wenn beides auftritt, muss der zweite bis letzte Parameter in der Parameterliste das Attribut [ lcid] aufweisen. Der letzte Parameter muss über das Attribut [retval] verfügen.
MIDL2385
falsche Syntax für midl_pragma
Der MIDL-Compiler hat einen unbekannten Syntaxfehler in einer midl_pragma-Anweisung erkannt.
MIDL2386
__int3264 wird im /osf-Modus nicht unterstützt.
Wenn Sie __int3264 verwenden müssen, kompilieren Sie im /ms-ext-Modus.
MIDL2387
Nicht aufgelöstes Symbol in der Typbibliothek
Der Compiler konnte keine formale Deklaration oder einen Referenztyp in der Typbibliothek auflösen.
MIDL2388
asynchrone Pipes können nicht als Wert übergeben werden.
Asynchrone Pipes sollten nach Verweis oder Adresse übergeben werden.
MIDL2389
Der Parameteroffset überschreitet den Grenzwert von 64 KB für interpretierte Prozeduren
Dieser Fehler bedeutet in der Regel, dass eine Prozedur über zu viele Parameter verfügt.
MIDL2390
ungültiges Arrayelement
Pipes können nicht als Arrayelemente verwendet werden.
MIDL2391
dispinterface-Member müssen Methoden, Eigenschaften oder Schnittstellen sein
Ein Dispinterface darf keine Typdefinitionen, Strukturen, Enumerationen oder Vereinigungen enthalten.
MIDL2392
[lokale] Prozedur ohne [call_as]
Objektprozeduren, die über das Attribut [local] verfügen, erfordern ebenfalls das Attribut [call_as].
MIDL2393
mehrdimensionaler Vektor, Wechsel zu /Oicf
Der / Os-Optimierungsmodus unterstützt keine Arrays für mehrdimensionale, nicht festgelegte Größen. Der Compiler hat den Optimierungsmodus für diese Funktion automatisch auf /Oicf umgestellt.
Diese Warnung kann global unterdrückt werden, indem Sie den Compilermodus ändern, indem Sie /Oicf in der MIDL-Befehlszeile angeben oder midl_pragma Warnung (deaktivieren: 2393) in der IDL-Datei verwenden. Der Optimierungsmodus kann für eine einzelne Funktion geändert werden, indem Sie der Funktion in der ACF-Datei das Attribut [optimize("icf")] hinzufügen.
Im folgenden Beispiel wird diese Warnung veranschaulicht:
void roo(long s1, [size_is(s1)] long a[][30];    //MIDL2393
void bar(long s1, long s2, [size_is(s1,s2) long **a);//MIDL2393
MIDL2395
Typ oder Konstrukt in einem Bibliotheksblock nicht unterstützt, da Oleaut32.dll Unterstützung für polymorphe Typen mit 64 KB fehlt
Die OLE-Automatisierung unterstützt keine polymorphen Typen (z. B. _int3264, INT_PTR usw.). Diese Typen verfügen über inkompatible Datendarstellungen zwischen 32-Bit- und 64-Bit-Plattformen. Der Remoteaufruf schlägt zur Laufzeit auf 64-Bit-Plattformen fehl.

Hinweis:
Beachten Sie, dass ab Windows 2000 64-Bit-TLB-Dateien von OLE Automation unterstützt werden, indem 32-Bit-TLB-Informationen zur Laufzeit konvertiert werden. Daher wird nur die 32-Bit-TLB-Generation von MIDL unterstützt.


Wenn MIDL nur zum Generieren einer Headerdatei verwendet wird, unterdrückt der Schalter /notlb die Generierung der TLB-Datei.

MIDL2396
Alter Interpretercode, der für 64b generiert wird
Dieser Fehler ist veraltet. Wenn dieser Fehler angezeigt wird, melden Sie microsoft einen Fehler, der Ihre IDL-Dateien, ACF-Dateien und die vollständige MIDL-Befehlszeile enthält.
MIDL2397
Der Compilerwechsel wird nicht mehr unterstützt.
Die angegebenen Switches werden nicht mehr unterstützt.
MIDL2398
MIDL-Engine kann nicht ausgeführt werden.
Ab windows 2000 Release (MIDL Version 5.03.279) wird der MIDL-Compiler mithilfe von zwei ausführbaren Dateien implementiert: Midl.exe (treiber) und Midlc.exe (Compiler-Engine). Dieser Fehler weist darauf hin, dass der Midl.exe nicht Midlc.exe starten kann. Stellen Sie sicher, dass sich Midlc.exe im selben Verzeichnis wie Midl.exe befindet und dass es sich um dieselbe Version handelt.
Der Fehler wurde möglicherweise durch Kopieren von Midl.exe, aber nicht Midlx.exe aus der neuesten Distribution verursacht. Führen Sie midl und/oder midlc an der Befehlszeile ohne Parameter aus, um die Versionsnummer der ausführbaren Datei anzuzeigen.
MIDL2399
fehlerhafte Befehle vom Treiber
Ab windows 2000 Release (MIDL Version 5.03.279) wird der MIDL-Compiler mithilfe von zwei ausführbaren Dateien implementiert: Midl.exe (treiber) und Midlc.exe (Compiler-Engine). Dieser Fehler weist darauf hin, dass die temporäre Datei, die zum Übergeben von Befehlen von Midl.exe an Midlc.exe verwendet wird, fehlt oder beschädigt ist. Stellen Sie sicher, dass sich Midlc.exe im selben Verzeichnis wie Midl.exe befindet und dass es sich um dieselbe Version handelt.
Der Fehler wurde möglicherweise durch den Versuch verursacht, Midlc.exe direkt auszuführen, oder durch Kopieren von Midl.exe, aber nicht Midlc.exe aus der neuesten Distribution. Führen Sie midl und/oder midlc an der Befehlszeile ohne Parameter aus, um die Versionsnummer der ausführbaren Datei anzuzeigen.
MIDL2400
für die OLE-Automatisierung sollten optionale Parameter VARIANT oder VARIANT * sein.
Ole Automation erfordert, dass alle [optionalen] Parameter vom Typ VARIANT oder VARIANT* sein müssen.
In der OLE-Automatisierung kann die Verwendung von Nicht-VARIANT-Parametern dazu führen, dass der Aufruf zur Laufzeit fehlschlägt oder nicht definierte Daten für die [optionalen] Parameter übergeben.
MIDL2401
[defaultvalue] wird auf einen Nicht-VARIANT und [optional] angewendet. Entfernen Sie [optional]
Das [defaultvalue]-Attribut impliziert [optional]. Das Attribut [ optional] ist nicht erforderlich.
MIDL2402
[optional]-Attribut kann außerhalb eines Bibliotheksblocks nicht angewendet werden.
Die vom Attribut [ optional] implizierte Funktionalität gilt nicht für Proxys, die für eine Schnittstelle außerhalb eines Bibliotheksblocks generiert werden.
MIDL2403
Der Datentyp des [Icid]-Parameters muss lang sein.
Ole Automation erfordert, dass Parameter mit dem [Icid]-Attribut vom Typ long sein müssen.
MIDL2404
Prozeduren mit [propput], [propget] oder [propref] dürfen nicht mehr als einen erforderlichen Parameter nach [optional]
Es darf nicht mehr als einen Parameter ohne [optional] nach dem letzten Parameter mit [optional] bei Verwendung von [propput], [propget] oder [ propputref] geben.
MIDL2405
[comm_status] oder [fault_status] mit Beiz erfordert -Oicf
Der alte -Oi-Optimierungsmodus unterstützt keine Prozeduren oder Parameter mit [ comm_status] oder [ fault_status] mit Beiz (d. a. mit [ codieren] und/oder [ Decodierung]).
Diese Warnung kann global unterdrückt werden, indem Sie -Oicf in der MIDL-Befehlszeile oder für eine einzelne Funktion angeben, indem Sie der Funktion in der ACF-Datei das Attribut [optimize("icf:)] hinzufügen.
Im Allgemeinen wird der -Oicf-Optimierungsmodus gegenüber dem -Oi-Modus empfohlen.
MIDL2406
Midl-Treiber- und Compilerversionskonflikt
Ab windows 2000 Release (MIDL Version 5.03.279) wird der MIDL-Compiler mithilfe von zwei ausführbaren Dateien implementiert: Midl.exe (treiber) und Midlc.exe (Compiler-Engine). Dieser Fehler weist darauf hin, dass die Version von Midl.exe nicht mit der Version von Midlc.exe übereinstimmt.
Der Fehler wurde möglicherweise durch Kopieren von Midl.exe, aber nicht Midlc.exe aus der neuesten Distribution verursacht. Führen Sie midl und/oder midlc an der Befehlszeile ohne Parameter aus, um die Versionsnummer der ausführbaren Datei anzuzeigen.
MIDL2407
Keine Zwischendatei angegeben: Verwenden Sie Midl.exe
Ab windows 2000 Release (MIDL Version 5.03.279) wird der MIDL-Compiler mithilfe von zwei ausführbaren Dateien implementiert: Midl.exe (treiber) und Midlc.exe (Compiler-Engine). Dieser Fehler weist darauf hin, dass Midlc.exe direkt ausgeführt wurde, anstatt Midl.exe zu verwenden.
MIDL2408
Verarbeitungsproblem mit einem Parameter in einer Prozedur
Dieser Fehler kann beim Importieren von Daten aus einem TLB auftreten und wenn eine Prozedur einen ungültigen Parameter aufweist.
Wenn dieser Fehler angezeigt wird, melden Sie einen Fehler an Microsoft. Geben Sie Ihre IDL-Dateien, ACF-Dateien, TLB-Datei und die vollständige MIDL-Befehlszeile an.
MIDL2409
Verarbeitungsproblem mit einem Feld in einer Struktur
Dieser Fehler kann beim Importieren von Daten aus einem TLB auftreten und wenn eine Struktur über eine ungültige Struktur oder ein ungültiges Unionsfeld verfügt.
Wenn dieser Fehler angezeigt wird, melden Sie einen Fehler an Microsoft. Geben Sie Ihre IDL-Dateien, ACF-Dateien, TLB-Datei und die vollständige MIDL-Befehlszeile an.
MIDL2410
Interne Compilerinkonsistenz erkannt: Der Formatzeichenfolgenoffset ist ungültig. Weitere Informationen finden Sie in der Dokumentation .
Der MIDL-Compiler hat einen ungültigen Wert in seinen internen Datenstrukturen erkannt. Dies kann durch rekursive Strukturen oder durch Compiler verursacht werden, die seine eigenen Darstellungsgrenzwerte für interne Daten verletzen. Um das Problem zu identifizieren und/oder zu umgehen, versuchen Sie, die IDL-Datei zu vereinfachen. Dazu können Sie komplexe Parameter und rekursive Datenstrukturen vereinfachen oder die IDL-Datei verkleinern, indem Sie sie aufteilen. Diese Meldung kann von einem Diagnoseausdruck mit zusätzlichen Informationen zum Problem begleitet werden.
Wenn dieser Fehler angezeigt wird, melden Sie einen Fehler an Microsoft. Geben Sie Ihre IDL-Dateien, ACF-Dateien, die vollständige MIDL-Befehlszeile und ggf. die Diagnoseausgabe an.
MIDL2411
Interne Compilerinkonsistenz erkannt: Der Typoffset ist ungültig. Weitere Informationen finden Sie in der Dokumentation .
Der MIDL-Compiler hat einen ungültigen Wert in seinen internen Datenstrukturen erkannt. Dies kann durch rekursive Strukturen oder durch den Compiler verursacht werden, der seine eigenen Darstellungsgrenzwerte für interne Daten verletzt. Um das Problem zu identifizieren und/oder zu umgehen, versuchen Sie, die IDL-Datei zu vereinfachen. Dazu können Sie komplexe Parameter und rekursive Datenstrukturen vereinfachen oder die IDL-Datei verkleinern, indem Sie sie aufteilen. Diese Meldung kann von einem Diagnoseausdruck mit zusätzlichen Informationen zum Problem begleitet werden.
Wenn dieser Fehler angezeigt wird, melden Sie einen Fehler an Microsoft. Geben Sie Ihre IDL-Dateien, ACF-Dateien, die vollständige MIDL-Befehlszeile und ggf. die Diagnoseausgabe an.
MIDL2412
SAFEARRAY(roo)-Syntax wird außerhalb des Bibliotheksblocks nicht unterstützt. Verwenden Sie LPSAFEARRAY für den Proxy.
Explizit eingegebene SAFEARRAYs sind außerhalb eines Bibliotheksblocks nicht zulässig. Verwenden Sie stattdessen LPSAFEARRAY.
Im folgenden Beispiel wird dieser Fehler veranschaulicht:
void roo(SAFEARRAY(long) *a); //MIDL2412 when outside a library block
void roo(LPSAFEAEEAY a);         //OK
MIDL2413
Bitfelder werden nicht unterstützt.
Bitfelder im C-Stil werden von MIDL nicht unterstützt. Dies gilt sowohl für die Proxygenerierung als auch für die TLB-Generierung.
MIDL2414
Gleitkomma- oder komplexe Rückgabetypen mit [Decodierung] werden in -Oicf mit -OI nicht unterstützt.
Prozeduren mit Gleitkomma- oder Struktur-/Union-Rückgabetypen werden im -Oicf-Format nicht unterstützt. Eine Umgehung für 32-Bit besteht darin, den Optimierungsmodus -Oi beim Serialisieren von Daten zu verwenden (mit [Codieren] und/oder [Decodieren]). Da jedoch der alte Interpreter und die Beizunterstützung im Oi-Stil nach der Windows 2000-Veröffentlichung eingestellt werden soll, wird die Verwendung von Zeigern als Lösung für dieses Problem dringend empfohlen. Beachten Sie außerdem, dass das Ändern einer Schnittstellenmethode, um anstelle des Rückgabewerts, der das Problem verursacht, einen [out, ref]-Zeiger zu verwenden, in der Regel vollständig abwärtskompatibel ist und leicht auf der App-Ebene ausgeblendet werden kann.
Diese Warnung kann global unterdrückt werden, indem Sie -Oi in der MIDL-Befehlszeile oder für eine einzelne Funktion angeben, indem Sie der Funktion in der ACF-Datei das Attribut [optimize("i")] hinzufügen.
Das folgende Beispiel veranschaulicht das Problem:
roo.idl:
double GetDouble();
roo.acf:
[decode] GetDouble();
Eine Möglichkeit, diese Einschränkung zu umgehen, besteht darin, einen [out]-Parameter zu übergeben, der das Ergebnis enthält, anstatt einen Rückgabewert zu verwenden:
roo.idl:
void GetDouble([out] double *result); //top level pointer is a [ref] pointer
roo.acf:
[decode] GetDouble();
Wie bereits erwähnt, eignet sich die oben beschriebene Lösung nicht nur für die neuen Schnittstellen, sondern auch als Work-Around für die alten Schnittstellen. Die Drahtdarstellung für das neue Argument "out" ist identisch mit dem Rückgabewert (hinweis void wie der neue Rückgabewert).
MIDL2415
der Rückgabetyp wird für 64-Bit bei Verwendung von [Decodierung] nicht unterstützt.
Prozeduren mit Gleitkomma- oder Struktur-/Union-Rückgabetypen werden im 64-Bit-Modus beim Durchführen der Datenserialisierung (mit [ codieren] und/oder [ Decodierung]) nicht unterstützt. Dies hängt mit dem alten Oi-Interpreter und dem Datenserialisierer zusammen, der auf der 64-Bit-Plattform nicht unterstützt wird. Weitere Informationen finden Sie in der Beschreibung von MIDL2414.
Im folgenden Beispiel wird dieser Fehler veranschaulicht:
roo.idl:
double GetDouble();
roo.acf:
[decode] GetDouble();
Das Folgende wird als Work-Around für neue und alte Schnittstellen empfohlen. Verwenden Sie einen [out]-Parameter, um das Ergebnis zu halten, anstatt einen Rückgabewert zu verwenden:
roo.idl:
void GetDouble([out] double *result); //top level pointer is a [ref] pointer.
roo.acf:
[decode] GetDouble();
Beachten Sie, dass diese Lösung auf Draht vollständig abwärtskompatibel ist, da die Drahtdarstellung eines [ref, out]-Zeigers oder eines Doubles mit der eines Double identisch ist.
MIDL2416
der übertragene Typ darf keinen vollständigen Zeiger für [wire_marshal] oder [user_marshal] enthalten.
Typen mit [ wire_marshal]- oder [ user_marshal]-Attributen enthalten möglicherweise keine vollständigen ([ ptr])- Zeiger. Verwenden Sie stattdessen [ unique] oder [ ref].
Im folgenden Beispiel wird dieser Fehler veranschaulicht:
typedef struct
{
    [ptr] long *a;    //Should use [ref] or [unique] instead
}
st1;
typedef [wire_marshal(st1)] struct
{
    long a;
}
st2:
void roo(st2 *s);    //MIDL2416
MIDL2417
Der übertragene Typ muss entweder ein Zeiger sein oder eine konstante Größe für [wire_marshal] und [user_marshal] aufweisen.
Typen der obersten Ebene mit [ wire_marshal] oder [ user_marshal] Attributen müssen zur Kompilierzeit eine klar definierte Größe aufweisen. Sie dürfen keine konformen oder unterschiedlich großen Arrays sein oder enthalten.
Im folgenden Beispiel wird dieser Fehler veranschaulicht:
typedef struct        //Type contains variable-sized array
{
    long s;
    [size_is(s)] char a[];
}
st1;
typedef [wire_marshal(st1)] struct
{
    long a;
}
st2;
void roo(st2 *s);        //MIDL2417
MIDL2418
Prozeduren mit [Propget] müssen mindestens einen Parameter oder einen Rückgabewert aufweisen.
Prozeduren mit dem Attribut [propget] müssen über eine Möglichkeit verfügen, den Eigenschaftswert zurückzugeben. Sie müssen mindestens einen [out]-Parameter oder einen Rückgabewert aufweisen.
MIDL2461
Das [readonly]-Attribut wurde auf Methodenebene angewendet.
Das [readonly]-Attribut kann nur auf Parameterebene angewendet werden.
MIDL2465
Strukturen, die konforme Arrays enthalten, müssen als Verweis übergeben werden.
Parameter der obersten Ebene in RPC müssen zur Kompilierzeit eine klar definierte Größe aufweisen. Sie können kein konformes oder unterschiedlich großes Array sein oder enthalten. Darüber hinaus können Benutzer einen Typ ohne eine klar definierte Größe nicht codieren/decodieren. Anwendungen müssen eine konforme Struktur bzw. eine konforme unterschiedliche Struktur nach Verweis übergeben.
Im folgenden Beispiel wird dieser Fehler veranschaulicht:
typedef struct        //Type contains variable-sized array
{
    long s;
    [size_is(s)] char a[];
}
st1;
void roo(st1 s);        //MIDL2465
 
on .acf file
typedef [encode,decode] st1; //MIDL2465
MIDL9008
Systemfehlercode> für interne Compilerprobleme<: Der Compiler kann aus einem unbekannten Grund nicht fortgesetzt werden. Eine Problemumgehung finden Sie in der Dokumentation.
Der Compiler konnte nicht fortgesetzt werden, und die Ursache des Fehlers ist unbekannt. Die hexadezimale Fehlernummer ist ein Systemfehlerbezeichner. Die Kompilierung ist möglicherweise aufgrund eines externen Problems, z. B. einer Nicht-Arbeitsspeicher-Bedingung, fehlgeschlagen. In diesem Fall finden Sie weitere Informationen unter Winerror.h oder Ntstatus.h.
Es gibt zwei Situationen, in denen dieser Fehler normalerweise generiert wird:
  • Der MIDL-Compiler konnte nicht wiederhergestellt werden, nachdem ein Fehler in der IDL-Datei erkannt wurde. Wenn MIDL Fehlermeldungen zu Ihrer IDL-Datei zurückgegeben hat, versuchen Sie, diese zu beheben und neu zu kompilieren. Wenn keine Fehlermeldungen vorhanden sind, ist der Compiler möglicherweise fehlgeschlagen, bevor er einen Fehler melden konnte. Suchen Sie nach einem Syntaxfehler in der Zeile, für die der interne Compilerfehler gemeldet wird.
  • Der MIDL-Compiler konnte nicht den richtigen Code unter einer angegebenen Optimierungsoption generieren. Versuchen Sie, Compilermodi zu ändern, in der Optimierung im gemischten Modus (/Os) zu kompilieren oder alle Optimierungen zu entfernen. Oder kompilieren Sie mithilfe des Flags /NO_FORMAT_OPT, um die Standardoptimierung von Prozedur- und Typdeskriptoren durch MIDL zu unterdrücken.
Gelegentlich tritt dieser Fehler auch dann auf, wenn die IDL-Datei korrekt ist und keine Optimierungsoptionen verwendet werden. Wenn dies der Fall ist, versuchen Sie, den Codeabschnitt in der Nähe von zu schreiben, in der der Fehler gemeldet wurde, indem Sie alle kürzlichen Änderungen entfernen, Datentypen vereinfachen oder neu anordnen, Prototypen ändern oder teile der IDL-Datei auskommentieren, um den Problemcode zu finden.
Wenn keine dieser Optionen funktioniert oder Sie der Meinung sind, dass das Problem mit einem Fehler in Midl.exe zusammenhängt, benachrichtigen Sie Microsoft und geben Sie alle relevanten Details an.