次の方法で共有


コンパイラ エラー

MIDL コンパイル中に次のエラー メッセージが生成されます。

リターン コード 説明
MIDL2000
抽象宣言子には /c_ext を指定する必要があります
抽象宣言子は、RPC に対する Microsoft 拡張機能を表し、DCE RPC では定義されていません。 したがって、ファイルに抽象宣言子が含まれている場合は、厳密な DCE 互換性を強制する /osf スイッチを使用してコンパイルすることはできません。 MIDL バージョン 3.0 以降では、 既定値として /c_ext スイッチを使用します。 /osf スイッチは /c_ext スイッチをオフにします。 抽象宣言子の詳細については、「 ACF 本文」を参照してください。
MIDL2001
データのインスタンス化は無効です。"extern" または "static" を使用する必要があります
IDL ファイル内の宣言と初期化は、DCE RPC と互換性がありません。 この機能は、DCE 互換 (/osf) モードでコンパイルするときに使用できない Microsoft 拡張機能です。
MIDL2002
コンパイラ スタック オーバーフロー
IDL ファイルの処理中に、コンパイラのスタック領域が不足しました。 この問題は、コンパイラが複雑な宣言または式を処理しているときに発生する可能性があります。 この問題を解決するには、複雑な宣言または式を簡略化します。
MIDL2003
このエラー メッセージは、型が再定義されたという状況で表示される場合があります。プロシージャ プロトタイプが再定義されました。同じ名前の構造体または共用体のメンバーが既に存在します。同じ名前のパラメーターがプロトタイプに既に存在します。
MIDL2004
[auto_handle] バインドが使用されます
既定のハンドル型として定義されているハンドルの種類はありません。 コンパイラは、指定したプロシージャのバインド ハンドルとして自動ハンドルが使用されることを前提としています。
MIDL2005
メモリ不足
コンパイル中にコンパイラのメモリが不足しました。 IDL ファイルのサイズまたは複雑さを減らすか、プロセスにメモリを割り当てます。
MIDL2006
再帰定義
構造体または共用体が再帰的に定義されています。 このエラーは、入れ子になった構造体定義のポインター指定が見つからない場合に発生する可能性があります。
MIDL2007
インポートは無視されます。既にインポートされているファイル
IDL ファイルのインポートはべき等操作です。 複数回含めることは効果がありません。 最初のインポート操作以外はすべて無視されます。
MIDL2008
スパース列挙型には、/c_ext または /ms_ext が必要です
列挙定数に値を割り当てると、DCE RPC と互換性がありません。 列挙定数への値の割り当てを許可する MIDL に対する Microsoft 拡張機能を使用する場合は、厳密な DCE 互換性を強制する /osf スイッチを使用してコンパイルすることはできません。 MIDL バージョン 3.0 以降では、 /c_ext スイッチと /ms_ext スイッチが既定値として使用されます。 /osf スイッチは、これらの拡張スイッチをオフにします。
MIDL2009
未定義のシンボル
未定義のシンボルが式で使用されています。 このエラーは、未定義の列挙値を使用するときに発生する可能性があります。
MIDL2010
IDL ファイルで定義されていない ACF ファイルで使用される型
未定義の型が使用されています。
MIDL2011
未解決の型宣言
追加のエラー情報フィールドで報告される型は、IDL ファイル内の他の場所で定義されていません。
MIDL2012
ワイド文字定数を使用するには、/ms_ext または /c_ext
ワイド文字定数は、DCE IDL に対する Microsoft の拡張機能です。 データ型 wchar_tを使用するには、 /osf スイッチを使用してコンパイルすることはできません。これにより、MIDL コンパイラの既定のスイッチ /ms_ext/c_ext がオーバーライドされます。
MIDL2013
ワイド文字列を使用するには、/ms_ext または /c_ext が必要です
ワイド文字列定数は、DCE IDL に対する Microsoft の拡張機能です。 データ型 wchar_tを使用するには、 /osf スイッチを使用してコンパイルすることはできません。これにより、MIDL コンパイラの既定のスイッチ /ms_ext/c_ext がオーバーライドされます。
MIDL2014
型wchar_tの再定義に矛盾があります
wchar_t型は、符号なし short DOS * と等価ではない型として再定義されました。
MIDL2015
importlib が見つかりません
コンパイラで [ importlib] ディレクティブで指定されたタイプ ライブラリが見つかりませんでした。 ライブラリのパスと名前が正しいことを確認します。
MIDL2016
2 つのライブラリ ブロック
同じソース ファイル内の 2 つのライブラリ ブロック (名前が異なる場合でも) は無効です。 すべての要素を 1 つのライブラリ ブロックに結合します。
MIDL2017
dispinterface ステートメントには IDispatch の定義が必要です
このエラーは通常、Stdole2.tlb または Oaidl.idl ファイルがインポートされていない場合に発生します。
MIDL2018
タイプ ライブラリにアクセス中にエラーが発生しました
指定したタイプ ライブラリがコンパイラで見つかりませんでした。 パスが正しく指定されていることを確認します。
MIDL2019
型情報にアクセス中にエラーが発生しました
インポートされたタイプ ライブラリが破損しているか、無効であるか、部分的にしか構築されていません。
MIDL2020
タイプ ライブラリの生成エラー
タイプ ライブラリを生成できませんでした。 このエラーの原因の 1 つは、126 文字を超える IDL ファイルへのパスを指定することです。 Oleaut32.dll では、126 文字を超えるパス名はサポートされていません。
MIDL2021
重複する ID
アプリケーションでは、 IDL ファイル内の id ステートメントを使用して、メンバー関数の DISPID を指定します。 メンバー関数には、インターフェイスまたはディスパッチインターフェイスのプロパティまたはメソッドを指定できます。 このエラーは、IDL ファイルが 2 つのメソッドまたはプロパティに同じ識別子番号を指定したことを示します。
MIDL2022
エントリ属性の値が正しくありません。
entry 属性の引数には、名前付きエントリ ポイントを指定する文字列、またはエントリ ポイントを定義する序数を指定できます。 この引数が見つからないか、無効な値が含まれています。
MIDL2023
エラー復旧では、
MIDL コンパイラが IDL ファイル内で無効な文字を検出しました。
MIDL2024
エラー回復の破棄
MIDL コンパイラが IDL ファイル内で無効な文字を検出しました。 無効な文字は無視されます。
MIDL2025
構文エラー
コンパイラは、指定された行で構文エラーを検出しました。
MIDL2026
は、以前の構文エラーから回復できません。コンパイルの中止
MIDL コンパイラは、構文要素を追加または削除することで、構文エラーからの回復を自動的に試みます。 このメッセージは、これらの回復が試行されたにもかかわらず、コンパイラが検出したエラーが多すぎることを示します。 指定したエラーを修正し、再コンパイルします。
MIDL2027
不明なプラグマ オプション
指定された C プラグマは MIDL ではサポートされていません。 IDL ファイルからプラグマを削除します。
MIDL2028
機能が実装されていません
MIDL 機能は言語定義の一部ですが、Microsoft RPC では実装されておらず、MIDL コンパイラではサポートされていません。 たとえば、ビットセット、パイプ、および国際文字型の言語機能は実装されていません。 実装されていない言語機能は、エラー メッセージの追加のエラー情報フィールドに表示されます。
MIDL2029
型が実装されていません
指定したデータ型は、有効な MIDL キーワード (keyword)ですが、Microsoft RPC では実装されていません。
MIDL2030
逆参照操作で使用される非ポインター
ポインターではないデータ型がポインター操作に関連付けられています。 指定した非ポインターを使用して オブジェクトにアクセスすることはできません。
MIDL2031
expression に 0 で除算された値が含まれます
定数式には、0 による除算が含まれます。
MIDL2032
expression は互換性のない型を使用します
式の演算子の左側と右側は互換性のない型です。
MIDL2033
nonarray 式はインデックス演算子を使用します
式は、配列型ではないデータ項目に対して配列インデックス作成操作を使用します。
MIDL2034
式の左側が構造体/共用体/列挙型と評価されない
直接または間接参照演算子 "." または "->" が、構造体、共用体、または列挙体ではないデータ オブジェクトに適用されています。 指定したオブジェクトを使用して直接参照または間接参照を取得することはできません。
MIDL2035
定数式が必要です
構文に定数式が必要でした。 たとえば、配列の境界には定数式が必要です。 バインドされた配列が変数または未定義のシンボルで定義されている場合、コンパイラはこのエラー メッセージを発行します。
MIDL2036
式はコンパイル時に評価できません
コンパイラはコンパイル時に式を評価できません。
MIDL2037
式が実装されていません
以前のリリースの MIDL コンパイラでサポートされていた機能は、Microsoft RPC で提供されているコンパイラのバージョンではサポートされていません。 指定した式を削除します。
MIDL2038
[pointer_default] 属性が指定されていません。属性が設定されていないすべてのポインターに対して [unique] と想定されます
MIDL コンパイラは、ポインター属性を持たないポインターに対して 3 つの異なる既定のケースを提供します。 最上位のポインターである関数パラメーターは、既定で [ref] ポインターに設定されます。 構造体に埋め込まれたポインターと、(最上位ポインターではなく) 他のポインターへのポインターは、既定で [pointer_default] 属性で指定された型に設定されます。 [pointer_default] 属性が指定されていない場合、これらの非トップレベル ポインターは既定で一意のポインターになります。 このエラー メッセージは、最後のケースを示します。[pointer_default] 属性が指定されておらず、一意のポインターとして扱われる最上位以外のポインターが少なくとも 1 つあります。 詳細については、「 既定のポインター型」を参照してください。
MIDL2039
インターフェイスはオートメーション マーシャリング準拠ではありません
インターフェイスが OLE オートメーション インターフェイスの要件を満たしていません。 インターフェイスが IUnknown または IDispatch から派生していることを確認します。
MIDL2040
[out] パラメーターのみを開いている構造体へのポインターにすることはできません
[出力] のみのパラメーターは、実行時に送信される範囲とサイズが決定されるオープン構造体と呼ばれる構造体へのポインターとして使用されています。 サーバー スタブは、開いている構造体に割り当てる領域を認識しません。 開いている構造体へのポインターへのポインターを使用し、サーバー アプリケーションが十分な領域を割り当てることを確認します。
MIDL2041
[out] パラメーターのみを、未分割の文字列にすることはできません
文字列属性を持つ配列は、サイズ指定なしで [out] 専用パラメーターとして宣言されています。 サーバー スタブには、文字列のメモリを割り当てるためのサイズ情報が必要です。 文字列属性を削除して [size_is] 属性を追加することも、パラメーターを [in, out] パラメーターに変更することもできます。
MIDL2042
[out] パラメーターはポインターではありません
すべての [出力] パラメーターは、C プログラミング言語の値ごとの呼び出し規則に従って、ポインターである必要があります。 [out] 方向パラメーターは、サーバーがクライアントに値を送信することを示します。 値による呼び出し規則を使用すると、関数引数がポインターである場合にのみ、サーバーはデータをクライアントに送信できます。
MIDL2043
open 構造体をパラメーターにすることはできません
open 構造体には、最後の要素として適合する配列が含まれています。 構造体または共用体は、その構造体または共用体の最後の要素が準拠配列である場合に切り捨てられます。
MIDL2044
[out] コンテキスト ハンドル/ジェネリック ハンドルは、そのハンドル型へのポインターとして指定する必要があります
[out] 方向属性を持つコンテキスト ハンドルまたはユーザー定義ハンドル パラメーターは、ポインターへのポインターである必要があります。
MIDL2045
コンテキスト ハンドルは、[transmit_as] 属性を持つ型から派生してはなりません
コンテキスト ハンドルは、コンテキスト ハンドル型として送信する必要があります。 これらは他の型として送信できず、[transmit_is]、[represent_as]、[wire_marshal]、または [user_marshal] から派生することはできません。
MIDL2046
リモート プロシージャに対して可変数の引数を指定できません
コンパイル時に可変数の引数を指定するリモート プロシージャ呼び出しは、DCE RPC 定義と互換性がありません。 Microsoft RPC では、可変数の引数を使用することはできません。
MIDL2047
名前付きパラメーターを "void" にすることはできません
基本型 void を持つパラメーターは、名前で指定します。
MIDL2048
パラメーターは"coclass" または "module" から派生します
コクラスは、インターフェイスとディスパッチインターフェイスを含む最上位のオブジェクトを指定します。 パラメーターとして渡すことはできません。
MIDL2049
バインド ハンドルにできるのは、最初のパラメーターのみです。/ms_ext スイッチを指定する必要があります
DCE RPC では、最初のパラメーターのみをバインド ハンドルにすることができます。 /osf スイッチを使用してコンパイルすると、複数のハンドル パラメーターをサポートし、左端以外のパラメーターを処理する既定の /ms_ext スイッチがオフになります。
MIDL2050
パラメーターと戻り値の型の両方で [comm_status] を使用できません
プロシージャとそのパラメーターの 1 つはどちらも [comm_status] 属性を持っています。 [comm_status] 属性は、一度に 1 つのデータ オブジェクトのみを error_status_t型にできることを指定します。
MIDL2051
プロシージャの [local] 属性には /ms_ext が必要です
[local] 属性は、DCE IDL に対する Microsoft 拡張機能です。 関数でこの属性を使用するには、 /osf スイッチを使用してコンパイルすることはできません。 /osf スイッチは、MIDL コンパイラの既定のスイッチ /ms_ext および /c_ext をオーバーライドします。
MIDL2052
プロパティ属性はプロシージャでのみ使用できます
[propget]、[propput]、または [propputref] 属性の不適切な使用。 プロパティの関数名のスペルが正しく、プロパティと関数の名前が同じであることを確認します。
MIDL2053
プロシージャに複数のプロパティ属性を含めないようにする
関数に指定できるのは、最大で [propget]、[propput]、または [propputref] 属性のいずれか 1 つだけです。
MIDL2054
プロシージャに無効な操作属性の組み合わせがある
特定の属性は、他の属性と関連して使用できません。 この手順で使用される属性の正確な要件と構文については、「MIDL 言語リファレンス」を参照してください。
MIDL2055
適合する配列から派生するフィールドは、構造体の最後のメンバーである必要があります
構造体には、構造体の最後の要素ではない準拠配列が含まれています。 適合する配列は、最後の構造体要素として指定する必要があります。
MIDL2056
重複する [case] ラベル
重複する大文字と小文字のラベルが指定されています。 重複するラベルが表示されます。
MIDL2057
判別共用体に [default] ケースが指定されていません
判別共用体は、既定の大文字と小文字を指定せずに指定されています。
MIDL2058
属性式を解決できません
属性に関連付けられている式を解決できません。 このエラーは、通常、式に表示される変数が定義されていない場合に発生します。 たとえば、変数 s が定義されておらず、属性 [size_is] で使用されている場合、エラーが発生する可能性があります。
MIDL2059
属性式は整数型である必要があり、64 ビット式はサポートされません
指定した属性変数または式は整数型である必要があります。 このエラーは、属性式の型が整数に解決されない場合に発生します。
MIDL2060
[byte_count] /ms_extが必要です
[byte_count] 属性は、DCE IDL の Microsoft 拡張機能です。 この属性を使用するには、MIDL コンパイラの既定のスイッチ /ms_ext と /c_ext をオーバーライドする /osf スイッチを使用してコンパイルすることはできません。
MIDL2061
[byte_count] ポインター型の out パラメーターにのみ適用できます
[byte_count] 属性は [out] パラメーターにのみ適用でき、すべての [out] パラメーターはポインター型である必要があります。
MIDL2062
[byte_count] 準拠する配列または構造体へのポインターで指定することはできません
[byte_count] 属性は、適合する配列または構造体に適用できません。
MIDL2063
バイト数を指定するパラメーターが [入力] のみではないか、バイト数パラメーターが [out] のみではない
[byte_count] に関連付けられている値は、クライアントからサーバーに送信する必要があります。これは [in] パラメーターである必要があります。 [byte_count] パラメーターを [in, out] パラメーターにする必要はありません。
MIDL2064
バイト数を指定するパラメーターが整数型ではありません
バイト数に関連付けられている値は、整数型 intsmallshort、または long である必要があります。
MIDL2065
[byte_count] size 属性を持つパラメーターで指定することはできません
[byte_count] 属性は、[size_is] や [length_is] などの他のサイズ属性では使用できません。
MIDL2066
[case] 式が定数ではありません
case ラベルに指定された式が定数ではありません。
MIDL2067
[case] 式が整数型ではありません
case ラベルに指定された式が整数型ではありません。
MIDL2068
void * 以外の型に [context_handle] を指定するには、/ms_ext
DCE-RPC 互換の場合、コンテキスト ハンドルは void * 型のポインターである必要があります。 コンテキスト ハンドルを void * 以外の型に関連付ける場合は、MIDL コンパイラの既定のスイッチ /ms_extをオーバーライドする MIDL コンパイラ スイッチ /osf を使用しないでください。
MIDL2069
comm_status/fault_statusごとに複数のパラメーターを指定することはできません
プロシージャには、[comm_status] 属性を持つパラメーターを 1 つだけ指定できます。 [fault_status] 属性を使用して、最大 1 つのパラメーターを指定できます。
MIDL2070
comm_status/fault_status パラメーターは [out] のみのポインター パラメーターである必要があります
エラー コードの種類 [comm_status] と [fault_status] はサーバーからクライアントに送信されるため、[out] パラメーターとして指定する必要があります。 C プログラミング言語の制約により、すべての [出力] パラメーターはポインターである必要があります。
MIDL2071
エンドポイント構文エラー
エンドポイントの構文が正しくありません。
MIDL2072
inapplicable 属性
このコンストラクトでは、指定した属性を適用できません。 たとえば、文字列属性は char 配列または char ポインターに適用され、2 つの 短い 整数で構成される構造体には適用できません。
typedef [string] struct moo 
{
    short x;
    short y;
};
MIDL2073
[allocate] には /ms_ext が必要です
allocate 属性は、DCE RPC の一部として定義されていない Microsoft 拡張機能を表します。 この属性を使用するには、MIDL コンパイラの既定のスイッチ /ms_extをオーバーライドする /osf スイッチを使用してコンパイルすることはできません。
MIDL2074
無効な [割り当て] モード
[allocate] 属性コンストラクトの無効なモードが指定されました。 4 つの有効なモードは、single_node、all_nodes、on_null、常にです。
MIDL2075
長さ属性を文字列属性と共に適用することはできません
string 属性を使用すると、生成されたスタブ ファイルによって strlen 関数が呼び出され、文字列の長さが決定されます。 同じ変数に length 属性と文字列属性を使用しないでください。
MIDL2076
[last_is] と [length_is] を同時に指定することはできません
同じ配列に [last_is] と [length_is] の両方が指定されています。 これらの属性は、length = last first + 1 と関連しています。 各値は他方から派生できるため、両方を指定しないでください。
MIDL2077
[max_is] と [size_is] を同時に指定することはできません
同じ配列 に [max_is] と [ size_is] の両方が指定されています。 これらの属性は、max = size + 1 に関連しています。 各値は他方から派生できるため、両方を指定しないでください。
MIDL2078
union の使用時に [switch_is] 属性が指定されていない
共用体に判別が指定されていません。 [switch_is] 属性は、共用体フィールドの中から選択するために使用される判別を示します。
MIDL2079
[uuid] が指定されていない
インターフェイスに UUID が指定されていません。
MIDL2080
[ローカル] インターフェイスで [uuid] が無視される
オブジェクト インターフェイスで [local] 属性を使用すると、MIDL コンパイラは [uuid] 属性を無視します。 RPC インターフェイスで両方の属性を使用することはできません。
MIDL2081
length 属性式と size 属性式の型の不一致
長さとサイズの属性式は、同じ型である必要があります。 たとえば、この警告は、[size_is] 式の属性変数が unsigned long 型で、[length_is] 式の属性変数が long 型の場合に発行されます。
MIDL2082
[string] 属性には、"byte"、"char"、または "wchar_t" 配列またはポインターを指定する必要があります
基本型がバイト型、char 型、またはメンバーがすべてバイト型または char 型である構造体ではないポインターまたは配列には、文字列属性を適用できません。
MIDL2083
[switch_is] 式の型と共用体のスイッチ型の間の不一致
共用体 [switch_type] が指定されていない場合、スイッチの種類は [switch_is] フィールドと同じ型になります。
MIDL2084
[transmit_as] コンテキスト ハンドルから派生した型に適用することはできません
コンテキスト ハンドルを他の型として送信することはできません。
MIDL2085
[transmit_as] 読み取り可能な型を指定する必要があります
指定した [transmit_as] 型は、 voidvoid *int など、Microsoft RPC によって送信できない型から派生します。定義された RPC 基本型を使用します。 int の場合は、int を修飾するために 、smallshortlong などのサイズ指定 子を追加します。
MIDL2086
[transmit_as] と [represent_as] の送信型をポインターにしたり、ポインターから派生したりすることはできません
転送される型をポインターにしたり、ポインターから派生したりすることはできません。
MIDL2087
[transmit_as] と [represent_as] に対して提示される型は、準拠/変化する配列、そのポインターに相当する、または準拠/変化する構造体から派生してはなりません
[transmit_as] が適用されている型は、適合する配列または構造体 (実行時にサイズが決定される配列または構造体) から派生することはできません。
MIDL2088
[uuid] 形式が正しくありません
UUID 形式は仕様に準拠していません。 UUID は、長さ 8、4、4、4、12 桁の 5 桁の 16 進数シーケンスで構成される文字列である必要があります。 "12345678-1234-ABCD-EF01-28A49C28F17D" は有効な UUID です。 関数 UuidCreate またはユーティリティを使用して、有効な UUID を生成します。
MIDL2089
uuid が 16 進数ではありません
インターフェイスに指定された UUID には、16 進数表現で無効な文字が含まれています。 文字 0 から 9、A から F は、16 進表現で有効です。
MIDL2090
省略可能なパラメーターは、必要なパラメーターの後に指定する必要があります
パラメーター リストの順序の説明については、「MIDL 言語リファレンス」の「省略可能」を参照してください。
MIDL2091
[entry] を使用する場合は [dllname] が必要です
DLL へのエントリ ポイントを指定する場合は、[dllname] 属性を使用してその DLL の名前も指定する必要があります。
MIDL2092
[bindable] が [propget]、[propput]、または [propputref] なしで無効です
[bindable] 属性はプロパティでのみ有効であるため、プロパティアクセス関数またはプロパティ設定関数の 1 つも指定する必要があります。
MIDL2093
[propput] または [propputref] を持つプロシージャには、少なくとも 1 つのパラメーターが必要です
[propput] または [ propputref] プロシージャには、設定するプロパティを持つ少なくとも [in] パラメーターが必要です。[propget] プロシージャは、プロパティまたは参照を受け取るために少なくとも [out, retval] パラメーターを持っている必要があります。
MIDL2094
[id] 属性が必要です
このメンバー関数は、 dispinterface 構文が使用されているため、 [ id] 属性を使用して指定する DISPID を必要とします。 プロパティとメソッドを使用して dispinterface を指定する場合は、すべてのプロパティとメソッドに DISPID を指定する必要があります。
MIDL2095
ACF で指定されたインターフェイス名が、IDL ファイルで指定されたインターフェイス名と一致しません
現在のコンパイラ モードでは、ACF のインターフェイス キーワード (keyword)に続く名前は、IDL ファイル内のインターフェイス キーワード (keyword)に続く名前と同じである必要があります。 MIDL コンパイラ スイッチ /acf を使用してコンパイルすると、IDL ファイルと ACF ファイル内のインターフェイス名が異なる場合があります。
MIDL2096
重複した属性
重複または競合する属性が指定されています。 このエラーは、多くの場合、2 つの属性が相互に排他的な場合に発生します。 たとえば、属性 [code] と [nocode] を同時に使用することはできません。
MIDL2097
[comm_status] 属性または [fault_status] 属性を持つパラメーターは、型へのポインターである必要がありますerror_status_t
パラメーター属性として [fault_status] または [comm_status] を使用する場合、パラメーターは error_status_t 型の [out] パラメーターである必要があります。 サーバー エラーが発生した場合、パラメーターはエラー コードに設定されます。 リモート呼び出しが正常に完了すると、プロシージャによって値が設定されます。
MIDL2098
ACF ファイルで [local] プロシージャを指定できません
ACF でローカル プロシージャが指定されています。 ローカル プロシージャは、IDL ファイルでのみ指定できます。
MIDL2099
指定された型がハンドルとして定義されていない
[implicit_handle] 属性で指定された型は、ハンドル型として定義されていません。 属性で指定された型定義または型名を変更します。
MIDL2100
プロシージャが未定義
属性が ACF 内のプロシージャに適用されており、そのプロシージャが IDL ファイルで定義されていません。
MIDL2101
このパラメーターは IDL ファイルに存在しません
ACF で指定されたパラメーターは、IDL ファイル内の定義に存在しません。 ACF に表示されるすべてのパラメーター、関数、および型定義は、IDL ファイルで以前に定義されたパラメーター、関数、および型に対応している必要があります。
MIDL2102
この配列境界コンストラクトはサポートされていません
MIDL では現在、配列の上限と下限を Array[Lower .. [Upper] は、配列の下限を指定する定数が値 0 に解決された場合にのみ行います。
MIDL2103
配列バインドの指定が無効です
固定サイズ配列の配列境界のユーザー指定が無効です。 次に例を示します。
typedef short Array[-1]
MIDL2104
準拠配列へのポインター、または準拠配列を含む配列へのポインターはサポートされていません
正しく準拠しない配列の使用。 準拠する配列を管理する規則については、「 配列と RPC」を参照してください。
MIDL2105
pointee/array はサイズを派生しません
適合する配列は、サイズ指定なしで指定されています。 [max_is] 属性または [size_is] 属性を使用してサイズ指定できます。
MIDL2106
タイプ ライブラリでは、固定配列と SAFEARRAY のみが有効です
ライブラリ ステートメント内で、タイプ ライブラリでは使用できない配列型を使用しました。
MIDL2107
SAFEARRAYs はライブラリ ブロック内でのみ有効です
MIDL コンパイラは、タイプ ライブラリを生成する場合を除き、SAFEARRAY を有効なデータ型として認識しません。
MIDL2108
正しくない形式の文字定数
行末文字は文字定数では使用できません。
MIDL2109
コメントで見つかったファイルの終わり
ファイルの末尾の文字がコメントで検出されました。
MIDL2110
文字列で見つかったファイルの終わり
ファイルの末尾の文字が文字列で検出されました。
MIDL2111
識別子の長さが 31 文字を超える
識別子は 31 文字の英数字に制限されます。 31 文字を超える識別子名は切り捨てられます。
MIDL2112
文字列内の行末が見つかりました
行末文字が文字列内で検出されました。 文字列を終了する二重引用符文字が含まれていることを確認します。
MIDL2113
文字列定数が 255 文字の制限を超えています
文字列の最大許容長が 255 文字を超えました。
MIDL2114
識別子が 255 文字の制限を超え、切り捨てられました
識別子が 255 文字の最大許容長を超えました。 識別子の余分な文字は切り捨てられます。
MIDL2115
定数が大きすぎます
定数が大きすぎて内部的に表現できません。
MIDL2116
数値解析エラー
コンパイラは数値識別子を解析できませんでした。
MIDL2117
ファイルを開くときにエラーが発生しました
出力ファイルを開こうとすると、オペレーティング システムからエラーが報告されました。 このエラーは、ファイル システムの名前が長すぎるか、ファイル名が重複していることが原因で発生する可能性があります。
MIDL2118
関数へのエラー バインド
MIDL2119
OLE の初期化中にエラーが発生しました
MIDL2120
ライブラリの読み込みエラー
MIDL2121
[out] パラメーターのみを最上位レベルの [unique] または [ptr] ポインター/配列から派生させる必要があります
一意のポインターを [out] 専用パラメーターにすることはできません。 定義上、一意のポインターは NULL から NULL 以外に変更できます。 [out]-only パラメーターに関する情報は、クライアントからサーバーに渡されません。
MIDL2122
属性は、この rpcable でない共用体には適用されません
リモート プロシージャ コールの一部として送信される共用体には、[switch_is] 属性と [switch_type] 属性のみが適用されます。
MIDL2123
size 属性に使用される式は、[out]専用パラメーターから派生してはなりません
[out]-only パラメーターの値はサーバーに送信されず、[in] パラメーターの長さまたはサイズを決定するために使用できません。
MIDL2124
[in] パラメーターの長さ属性に使用される式は、[out]専用パラメーターから派生できません
[out]-only パラメーターの値はサーバーに送信されず、[in] パラメーターの長さまたはサイズを決定するために使用できません。
MIDL2125
"int" の使用には /c_ext が必要です
MIDL は厳密に型指定された言語です。 ネットワーク経由で送信されるすべてのパラメーターは、MIDL 基本タイプのいずれかから派生する必要があります。 型 int は MIDL の一部として定義されていません。 送信されるデータには、サイズ指定子 (smallshort、long) を含める必要があります。 ネットワーク経由で送信されないデータは、インターフェイスに含めることができます。 /c_ext スイッチを使用します。
MIDL2126
struct/union フィールドを "void" にすることはできません
構造体または共用体のフィールドは、MIDL でサポートされている特定の基本型または基本型から派生した型であると宣言する必要があります。 Void 型はリモート操作では使用できません。
MIDL2127
array 要素を void にすることはできません
配列要素を void にすることはできません。
MIDL2128
型修飾子や修飾子の使用には /c_ext が必要です
_cdecl_farなどの型修飾子は、/c_ext スイッチを指定した場合にのみコンパイルできます。
MIDL2129
構造体/共用体フィールドは関数から派生してはなりません
構造体または共用体のフィールドは、MIDL 基本型またはこれらの基本型から派生した型である必要があります。 関数は、構造フィールドまたは共用体フィールドでは有効ではありません。
MIDL2130
array 要素を関数にすることはできません
配列要素を関数にすることはできません。
MIDL2131
パラメーターを関数にすることはできません
リモート プロシージャのパラメーターは、指定した型の変数である必要があります。 関数をリモート プロシージャのパラメーターにすることはできません。
MIDL2132
ビット フィールドを持つ構造体/共用体には /c_ext が必要です
リモート プロシージャ コールで送信されない構造体のビット フィールドを許可するには、MIDL コンパイラ スイッチ /c_ext を指定する必要があります。
MIDL2133
"int" が ANSI 互換ではない拡張機能である型 other のビット フィールド指定
ANSI C プログラミング言語仕様では、ビット フィールドを非インテガー型に適用することはできません。
MIDL2134
ビット フィールドの指定は、単純な整数型にのみ適用できます
ANSI C プログラミング言語仕様では、ビット フィールドを非インテガー型に適用することはできません。
MIDL2135
struct/union フィールドは、handle_tまたはコンテキスト ハンドルから派生してはなりません
コンテキスト ハンドルを別の構造体の一部として送信することはできません。 これらはコンテキスト ハンドルとして送信する必要があります。
MIDL2136
配列要素は、handle_tまたはコンテキスト ハンドルから派生してはなりません
コンテキスト ハンドルを配列の一部として送信することはできません。
MIDL2137
union needs /c_ext のこの仕様
インターフェイス定義に表示される共用体は、判別に関連付けるか、ローカルとして宣言する必要があります。 /c_ext スイッチ (MIDL の既定値) を使用すると、ネットワーク経由で送信されないデータをローカルとして暗黙的に宣言できます。 /osf スイッチを使用してこの IDL をコンパイルすることはできません。
MIDL2138
"int" から派生するパラメーターには、サイズ指定子 "small"、"short"、または "long" と "int" が必要です
int 型は 32 ビット プラットフォームでのみ有効な MIDL 型であり、16 ビット システム int ではサイズ指定を伴う必要があります。 smallshort、または long のいずれかのサイズ指定子を使用します。
MIDL2139
パラメーターの型は void または void* から派生できません。
MIDL は、厳密に型指定された言語です。 ネットワーク経由で送信されるすべてのパラメーターは、MIDL 基本タイプのいずれかから派生する必要があります。 MIDL では、基本型として void はサポートされていません。 宣言を有効な MIDL 型に変更する必要があります。
MIDL2140
ビット フィールドを含む構造体/共用体から派生するパラメーターはサポートされていません
ビット フィールドは、DCE RPC によって有効なデータ型として定義されていません。
MIDL2141
型修飾子/型修飾子を含む型から派生するパラメーターの使用には/c_ext
IDL ファイルで farnearconstvolatile などのキーワードを使用することは、DCE RPC に対する Microsoft の拡張機能です。 / osf スイッチを使用してコンパイルすると、これらのキーワードは使用できません。これにより、既定の /c_ext 拡張機能スイッチがオフになります。
MIDL2142
パラメーターは、関数へのポインターから派生してはなりません
RPC ランタイム ライブラリは、クライアントとサーバーの間でポインターとそれに関連付けられたデータを送信します。 関数をネットワーク経由で送信できないため、関数へのポインターをパラメーターとして送信することはできません。
MIDL2143
パラメーターは、非rpc 対応共用体から派生してはなりません
共用体は判別に関連付けられている必要があります。 [switch_is] 属性と [switch_type] 属性を使用します。
MIDL2144
戻り値の型は "int" から派生します。"int" でサイズ指定子を使用する必要があります
16 ビット システムでは、 int 型は、サイズ指定が伴わない限り、有効な MIDL 型ではありません。 smallshort、または long のいずれかのサイズ指定子を使用します。
MIDL2145
戻り値の型は void ポインターから派生してはなりません
MIDL は、厳密に型指定された言語です。 ネットワーク経由で送信されるすべてのパラメーターは、MIDL 基本タイプのいずれかから派生する必要があります。 Void 型は MIDL の一部として定義されていません。 宣言を有効な MIDL 型に変更する必要があります。
MIDL2146
戻り値の型は、ビット フィールドを含む構造体/共用体から派生してはなりません
ビット フィールドは、DCE RPC によって有効なデータ型として定義されていません。
MIDL2147
戻り値の型は、非rpc 対応共用体から派生してはなりません
共用体は判別に関連付けられている必要があります。 [switch_is] 属性と [switch_type] 属性を使用します。
MIDL2148
戻り値の型は、関数へのポインターから派生してはなりません
RPC ランタイム ライブラリは、クライアントとサーバーの間でポインターとそれに関連付けられたデータを送信します。 RPC では、関連付けられた関数をネットワーク経由で送信するメソッドが定義されていないため、関数へのポインターをパラメーターとして送信することはできません。
MIDL2149
複合初期化子はサポートされていません
DCE RPC では、単純な初期化のみがサポートされます。 IDL ファイルでは、構造体または配列を初期化できません。
MIDL2150
IDL ファイル内の ACF 属性には、/app_config スイッチが必要です
Microsoft 拡張機能を使用すると、IDL ファイルで ACF 属性を指定できます。 /app_config スイッチを使用して、この拡張機能をアクティブにします。
MIDL2151
単一行コメントには /ms_ext または /c_ext が必要です
2 つのスラッシュ文字 (//) を使用する 1 行のコメントは、DCE RPC に対する Microsoft 拡張機能を表します。 /osf スイッチを使用してコンパイルする場合は、1 行のコメントを使用できません。
MIDL2152
[バージョン] 形式が正しくありません
インターフェイス ヘッダーのインターフェイス バージョン番号は、 major という形式で指定する必要があります。minor。各数値の範囲は 0 から 65535 です。
MIDL2153
"signed" には /ms_ext または /c_ext が必要です
署名されたキーワード (keyword)の使用は、DCE RPC に対する Microsoft 拡張機能です。 この機能を使用する場合は、 /osf スイッチを使用できません。
MIDL2154
割り当ての種類の不一致
変数の型が、変数に割り当てられている値の型と一致しません。
MIDL2155
宣言は、const <型> \<declarator> = <initializing expression の形式である必要があります>
宣言は DCE RPC 構文と互換性がありません。 /ms_ext または /c_ext MIDL コンパイラ モード スイッチを使用します。
MIDL2156
宣言には "const" が必要です
IDL ファイル内の宣言は、キーワード (keyword) const を使用する定数式である必要があります。次に例を示します。
const short x = 2;
MIDL2157
struct/union/enum をパラメーター型の仕様で定義することはできません
構造体、共用体、または列挙型は、関数プロトタイプの外部で明示的に指定する必要があります。
MIDL2158
[allocate] 属性は、void 以外のポインター型にのみ適用する必要があります
[allocate] 属性は、複雑なポインターベースのデータ構造用に設計されています。 [allocate] 属性を指定すると、スタブ ファイルはデータ構造を走査して、ポインターからアクセスできるすべてのオブジェクトと、データ構造内の他のすべてのポインターの合計サイズを計算します。 型を非void ポインター型に変更するか、[allocate] 属性を削除し、別のメソッドを使用して、 sizeof 演算子などの割り当てサイズを決定します。
MIDL2159
配列または同等のポインターコンストラクトは、カプセル化されていない共用体から派生することはできません
各共用体は、判別に関連付けられている必要があります。 共用体の配列は、関連付けられた判別を提供しないため、許可されません。 スタブは判別を使用して各共用体のサイズを決定できるため、構造体が共用体とその判別をパッケージ化する構造体の配列が許可されます。
MIDL2160
フィールドは、error_status_t型から派生してはなりません
error_status_t型は、パラメーターまたは戻り値の型としてのみ使用できます。 構造体または共用体のフィールドに埋め込むことはできません。
MIDL2161
union にケース ラベルのないアームが少なくとも 1 つある
共用体宣言は、共用体に必要な MIDL 構文と一致しません。 各共用体アームには、その共用体アームを選択するケース・ラベルまたはデフォルト・ラベルが必要です。
MIDL2162
パラメーターまたは戻り値は、[ignore] が適用されている型から派生してはなりません
[ignore] 属性は、構造体や配列のフィールドなど、フィールドにのみ適用できるフィールド属性です。 [ignore] 属性は、転送中にスタブがポインターを逆参照しないようにし、[out] パラメーターや関数の戻り値など、逆参照する必要がある他の属性と競合する場合は許可されないことを示します。
MIDL2163
ポインターには既にポインター属性が適用されています
1 つのポインターに適用できるのは、ポインター属性 [ref]、[unique]、または [ptr] のいずれか 1 つだけです。
MIDL2164
field/parameter は、ref ポインターを介して再帰的な構造体から派生してはなりません
定義上、参照ポインターを NULL に設定することはできません。 参照ポインターで定義された再帰データ構造には NULL 要素がなく、規則によって終了しません。 [unique] ポインター属性を使用して、データ構造で NULL 要素を指定したり、データ構造を非回復データ構造として再定義したりできます。
MIDL2165
void ポインターから派生するフィールドの使用には /c_ext が必要です
void * と、DCE IDL でサポートされていないその他の型および型修飾子は、MIDL の既定のコンパイラ設定を使用する場合にのみ IDL ファイルで使用できます。 /osf スイッチを使用すると、この既定値がオーバーライドされます。 osf 互換モードでコンパイルする必要がある場合は、ポインター型を再定義する必要があります。
MIDL2166
この属性の使用には /ms_ext が必要です
この言語機能は、DCE IDL に対する Microsoft 拡張機能です。 osf 互換モード ( /osf ) でコンパイルする場合は、この機能を使用できません。
MIDL2167
この属性は、新しいフォーマット タイプ ライブラリでのみ許可されます
この属性を使用するには、Windows 2000 以降で提供 Oleaut32.dll のバージョンが必要です。
MIDL2168
/ms_ext または /c_ext が必要なwchar_tの使用
ワイド文字型は、DCE IDL の拡張を表します。 /osf スイッチを指定した場合、MIDL コンパイラはワイド文字型を受け入れません。
MIDL2169
名前のないフィールドには、/ms_ext または /c_ext が必要です
DCE IDL では、他の構造体または共用体に埋め込まれた名前のない構造体または共用体の使用はサポートされていません。 DCE IDL では、このようなすべての埋め込みフィールドに名前を付ける必要があります。 /osf スイッチを指定した場合、MIDL コンパイラでは使用できません。
MIDL2170
名前のないフィールドは、構造体/共用体型からのみ派生できます
名前のないフィールドをサポートする DCE IDL の Microsoft 拡張機能は、構造体と共用体にのみ適用されます。 この制限に準拠するには、フィールドに名前を割り当てるか、フィールドを再定義する必要があります。
MIDL2171
共用体のフィールドは、適合/変化する配列または同等のポインターから派生することはできません
適合する配列は共用体に単独で表示することはできませんが、配列のサイズを指定する値を伴う必要があります。 配列を共用体アームとして使用する代わりに、適合する配列とそのサイズを指定する識別子で構成される構造体を使用します。
MIDL2172
インターフェイス内のすべての未属性ポインターに対して [ptr] を想定して、[pointer_default] 属性が指定されていません
DCE IDL 実装では、各 IDL ファイル内のすべてのポインターをポインター属性に関連付ける必要があることを指定します。 明示的なポインター属性がパラメーターまたはポインター型に割り当てられていないときに、IDL ファイルに [pointer_default] 属性が指定されていない場合、ポインターに完全なポインター属性 ptr が関連付けられます。 ポインター属性を変更するには、明示的なポインター属性を使用するか、[pointer_default] 属性を指定するか、 /ms_ext スイッチを指定して、未属性ポインターの既定値を [unique] に変更します。
MIDL2173
初期化式は定数式に解決する必要があります
式を初期化子として使用する場合、式は定数式である必要があります。 これは、すべての MIDL コンパイラ モードで当てはまります。 式はコンパイル時に解決可能である必要があります。 リテラル定数または変数ではなく定数に解決される式を指定します。
MIDL2174
attribute 式は、整数型、char 型、ブール型、または列挙型である必要があります
指定した型は、有効なスイッチの種類に解決されません。 整数、文字、 バイトブール型、または 列挙型 、またはこれらの型のいずれかから派生した型を使用します。
MIDL2175
無効な定数
指定した定数が、指定した型の有効な範囲外です。
MIDL2176
属性が実装されていません。無視
指定された属性は、このリリースの Microsoft RPC では実装されていません。 MIDL コンパイラは、属性が存在しないかのように IDL ファイルの処理を続行します。
MIDL2177
戻り値の型は [ref] ポインターから派生してはなりません
ポインター型として定義されている関数の戻り値は、[一意] または 完全な ポインターとして指定する必要があります。 参照ポインターを使用することはできません。
MIDL2178
属性式は、このモードでは変数名またはポインター逆参照式である必要があります。 /ms_ext スイッチを指定する必要があります
DCE IDL コンパイラでは、[size_is] 属性に関連付けられているサイズを変数またはポインター変数で指定する必要があります。 定数式で [size_is] 属性を定義できる Microsoft 拡張機能を利用する場合は、 /osf コンパイラ スイッチを使用できません。
MIDL2179
パラメーターは、再帰的な非カプセル化された共用体から派生してはなりません
共用体には判別子を含める必要があるため、共用体は別の共用体を要素として持つことができません。 共用体は、判別を含む構造体の一部である場合にのみ、別の共用体に埋め込むことができます。
MIDL2180
binding-handle パラメーターを [out] のみにすることはできません
この操作のバインド ハンドルとして MIDL コンパイラによって識別されるハンドル パラメーターは、[in] パラメーターである必要があります。 [出力] のみのパラメーターはクライアント スタブでは未定義であり、バインド ハンドルはクライアントで定義する必要があります。
MIDL2181
ハンドルへのポインターを [unique] または [ptr] にすることはできません
ハンドルへのポインターに対して一意のポインター属性と完全ポインター属性を使用することはできません。 これらの属性では値 NULL が許可され、バインド ハンドルを NULL にすることはできません。 参照ポインターから binding-handle パラメーターを派生するには、[ref] 属性を使用します。
MIDL2182
バインド ハンドルではないパラメーターは、handle_tから派生してはなりません
handle_tプリミティブ ハンドル型は、ネットワーク経由で送信される有効なデータ型ではありません。 パラメーターの型を handle_t 以外の型に変更するか、パラメーターを削除します。
MIDL2183
予期しないファイルの終わりが見つかりました
MIDL コンパイラは、ファイルのすべての構文要素を正常に解決する前に、ファイルの末尾を見つけました。 終端の右中かっこ文字 (}) がファイルの末尾に存在することを確認するか、構文をチェックします。
MIDL2184
handle_tから派生する型に [transmit_as] を適用することはできません
handle_tプリミティブ ハンドルの種類は、ネットワーク経由で送信されません。
MIDL2185
[context_handle] に [ハンドル] が適用されている型には適用しないでください
[context_handle] 属性と [ハンドル] 属性を同じ型に適用することはできません。
MIDL2186
[handle] は、void または void * から派生する型で指定することはできません
[handle] 属性で指定された型はネットワーク経由で送信できますが、 void* 型は読み取り可能な型ではありません。 ハンドル型は、読み取り可能な基本型から派生した型に解決する必要があります。
MIDL2187
パラメーターには、このモードでは [in]、[out]、または [in,out] のいずれかが必要です。 /ms_ext または /c_ext を指定する必要があります
DCE IDL コンパイラでは、すべてのパラメーターに明示的な方向パラメーターが必要です。 DCE IDL に対する Microsoft 拡張機能を使用するには、 /osf スイッチを使用できません。このスイッチは 、/ms_ext/c_extをオーバーライドします。
MIDL2188
[transmit_as]、[represent_as]、[wire_marshal]、[user_marshal] の場合、送信される型は "void" から派生することはできません
[transmit_as] 属性はポインター型にのみ適用されます。 void の代わりに void* 型を使用 します
MIDL2189
"void" は、最初の唯一のパラメーター指定で指定する必要があります
キーワード (keyword) void は、他の関数パラメーターと誤って表示されます。 パラメーターを指定せずに関数を指定するには、次の例のように、パラメーター リストの唯一の要素として キーワード (keyword) void を指定する必要があります。
void Moo(void)
MIDL2190
[switch_is] は、カプセル化されていない共用体から派生する型でのみ指定する必要があります
[switch_is] キーワード (keyword)が正しく適用されていません。 これは、 カプセル化されていない共用体の型でのみ使用できます。
MIDL2191
stringable 構造体は、このバージョンでは実装されていません
DCE IDL では、属性 [string] を、文字またはバイトに解決される文字、バイト、または型のみで構成される要素を持つ構造体に適用できます。 この機能は、Microsoft RPC ではサポートされていません。 [string] 属性を構造体全体に適用することはできません。 ただし、個々の配列に適用できます。
MIDL2192
switch 型には、整数、char、ブール値、または列挙型のみを指定できます
指定した型は、有効なスイッチの種類に解決されません。 整数、文字、 バイトブール型、 列挙型 、またはこれらの型のいずれかから派生した型を使用します。
MIDL2193
[handle] は、handle_tから派生する型で指定することはできません
ハンドル型は、ハンドルの種類または属性の 1 つだけを使用して定義する必要があります。 プリミティブ型 handle_t または属性 [handle] を使用しますが、両方を使用しないでください。 ユーザー定義ハンドルの種類は読み取り可能である必要がありますが、 handle_t の種類はネットワーク上で送信されません。
MIDL2194
handle_tから派生するパラメーターを [out] パラメーターにすることはできません
プリミティブ型 handle_t のハンドルは、定義されているアプリケーションの側にのみ意味があります。 handle_tタイプはネットワーク上で送信されません。
MIDL2195
attribute 式は、[unique] または [ptr] ポインターの逆参照から派生します
[unique] 属性と full ポインター属性を使用すると、ポインターに NULL 値を指定できますが、size 属性または length 属性を定義する式には NULL 値を指定しないでください。 ポインターを使用すると、MIDL は式を [ref] ポインターに制限します。
MIDL2196
"cpp_quote" には /ms_ext が必要です
cpp_quote属性は、DCE IDL に対する Microsoft 拡張機能です。 /ms_extをオーバーライドする MIDL コンパイラ スイッチ /osf は使用しないでください。
MIDL2197
引用符で囲まれた uuid には /ms_ext が必要です
UUID 値を引用符で囲んで指定する機能は、DCE IDL に対する Microsoft の拡張機能です。 /ms_extをオーバーライドする MIDL コンパイラ スイッチ /osf は使用しないでください。
MIDL2198
戻り値の型は、カプセル化されていない共用体から派生できません
カプセル化されていない共用体は、関数の戻り値の型として使用できません。 共用体の型を返すには、共用体の型を [out] または [in, out] パラメーターとして指定します。
MIDL2199
戻り値の型は準拠構造体から派生できません
戻り値の型のサイズは定数である必要があります。 構造体にサイズ指定子も含まれている場合でも、適合する配列を含む構造体を戻り値の型として指定することはできません。 準拠構造体を返すには、構造体を [out] または [in, out] パラメーターとして指定します。
MIDL2200
[transmit_as] ジェネリック ハンドルから派生する型に適用することはできません
このリリースでは、[handle] 属性と [transmit_as] 属性を同じ型で組み合わせることはできません。
MIDL2201
[ハンドル] は、[transmit_as] が適用されている型には適用できません
このリリースでは、[handle] 属性と [transmit_as] 属性を同じ型で組み合わせることはできません。
MIDL2202
const 宣言に指定された型が無効です
定数宣言は、整数、文字、ワイド文字、文字列、およびブール型に制限されます。
MIDL2203
sizeof 演算子へのオペランドはサポートされていません
MIDL コンパイラでは、単純型に対してのみ sizeof 操作がサポートされます。 指定されたオペランドは整数型には評価されません。
MIDL2204
この名前は、const 識別子名として既に使用されています
識別子は、 const 宣言の 定数を識別するために以前に使用されていました。 識別子が一意になるように、いずれかの識別子の名前を変更します。
MIDL2205
型の再定義に矛盾error_status_t
error_status_t型は、unsigned long 型に解決する必要があります。 他の型定義は使用できません。
MIDL2206
[case] 値がスイッチの種類の範囲外
switch ステートメントの大文字と小文字に関連付けられた値が、指定したスイッチの種類の範囲外です。 たとえば、このエラーは、短整数型の case ステートメントで長整数の値が使用されている場合に発生します。
MIDL2207
/ms_ext が必要wchar_tから派生するパラメーター
ワイド文字型 wchar_t は、DCE IDL に対する Microsoft の拡張機能です。 /ms_ext をオーバーライドする MIDL コンパイラ スイッチ /osf は使用しないでください
MIDL2208
このインターフェイスにはコールバックのみが含まれます
コールバックは、リモート プロシージャ 呼び出しのコンテキストでのみ有効です。 インターフェイスには、[callback] 属性を含まないリモート プロシージャ 呼び出し用の関数プロトタイプが少なくとも 1 つ含まれている必要があります。
MIDL2209
冗長に指定された属性。無視
指定した属性が複数回適用されています。 同じ属性の複数のインスタンスは無視されます。
MIDL2210
暗黙的なハンドルに使用されるコンテキスト ハンドル型
[context_handle] 属性を使用して定義された型が、[ implicit_handle] 属性のハンドル型として指定されています。 この方法で属性を組み合わせることはできません。
MIDL2211
[割り当て] に指定された競合するオプション
ACF 属性 [allocate] に指定されたオプションは、競合するディレクティブを表します。 たとえば、オプション all_nodesまたはオプション single_nodeを指定しますが、両方を指定することはできません。
MIDL2212
ファイルへの書き込み中にエラーが発生しました
ファイルへの書き込み中にエラーが発生しました。 この状態は、ディスク領域、ファイル ハンドル、ファイル アクセス制限、ハードウェア障害に関連するエラーが原因で発生する可能性があります。
MIDL2213
[switch_is] 型を使用して union の定義でスイッチの種類が見つかりません
共用体定義には、明示的な [switch_type] 属性は含まれません。 [switch_is] 属性で指定された変数の型がスイッチ型として使用されます。
MIDL2214
セマンティック チェック以前のエラーが原因で不完全
MIDL コンパイラは、入力ファイルを 2 回渡して、前方宣言を解決します。 最初のパスでエラーが発生したため、2 番目のパスのチェックは実行されていません。 転送宣言に関連する報告されていないエラーは、ファイルにまだ存在する可能性があります。
MIDL2215
handle パラメーターまたは戻り値の型は [callback] プロシージャではサポートされていません
[コールバック] プロシージャは、クライアントからサーバーへの呼び出しのコンテキストで発生し、元の呼び出しと同じバインド ハンドルを使用します。 明示的なバインド ハンドル パラメーターまたは戻り値の型は、コールバック関数では許可されません。
MIDL2216
[ptr] では、このバージョンでのエイリアシングはサポートされていません
別名は、複数のポインターまたは変数名を使用してデータにアクセスできる場合に発生します。 エイリアスを削除します。 詳細については、「 一意のポインター」を参照してください。
MIDL2217
パラメーターはコンテキスト ハンドルとして既に定義されています
パラメーターは、以前はコンテキスト ハンドルとして定義されていました。
MIDL2218
[context_handle] は、handle_tから派生することはできません
3 つのハンドル特性は、型 handle_t、属性 [handle]、および属性 [context_handle] は相互に排他的です。 一度に 1 つの型またはパラメーターに適用できる特性は 1 つだけです。
MIDL2219
配列サイズが 65536 バイトを超えています
一部の Microsoft プラットフォームでは、読み取り可能な最大データ サイズは 64K です。 送信されるすべてのデータが最大読み取り可能なサイズ内に収まるように、アプリケーションを再設計します。
MIDL2220
構造体のサイズが 65536 バイトを超えています
一部の Microsoft プラットフォームでは、読み取り可能な最大データ サイズは 64K です。 送信されるすべてのデータが最大読み取り可能なサイズ内に収まるように、アプリケーションを再設計します。
MIDL2221
非カプセル化共用体のフィールドを別の非カプセル化共用体にすることはできません
リモート プロシージャ コールの一部として送信される共用体には、共用体アームを選択する関連付けられたデータ項目 (判別) が必要です。 他の共用体に入れ子になった共用体は、判別を提供しません。その結果、この形式では送信できません。 共用体とその判別で構成される構造体を作成します。
MIDL2222
埋め込み配列に適用されるポインター属性。無視
ポインター属性は、配列が最上位のパラメーターである場合にのみ、配列に適用できます。 他のデータ構造に埋め込まれた配列に適用されるその他のポインター属性は無視されます。
MIDL2223
[割り当て] は、[transmit_as]、[represent_as]、[wire_marshal]、または [user_marshal] の送信または提示された型で無効です
[transmit_as] 属性と [allocate] 属性の両方を同じ型に適用することはできません。 [transmit_as] 属性は、提示された型と送信される型を区別します。一方、[allocate] 属性は、提示された型が送信された型と同じであることを前提としています。
MIDL2224
[switch_type] は、このインポート モードで指定する必要があります
MIDL2225
[implicit_handle] 型は未定義です。汎用ハンドルを想定
ACF で指定されたハンドルの種類は、IDL ファイルで定義されていません。 MIDL コンパイラは、ハンドル型がプリミティブ ハンドル型 handle_tに解決されることを前提としています。 ハンドルをユーザー定義または汎用ハンドルのように動作させる場合は、型定義に [handle] 属性を追加します。
MIDL2226
配列要素は、error_status_tから派生することはできません
このリリースの Microsoft RPC では、 error_status_t 型はパラメーターまたは戻り値の型としてのみ表示できます。 配列に表示できません。
MIDL2227
[allocate] プリミティブ/ジェネリック/コンテキスト ハンドルから派生する型では無効です
仕様上、ACF 属性 [allocate] をハンドル型に適用することはできません。
MIDL2228
送信または提示される型は、error_status_tから派生してはなりません
このリリースの Microsoft RPC では、 error_status_t 型を [transmit_as] 属性と共に使用することはできません。
MIDL2229
共用体の判別は、[無視] が適用されたフィールドから派生してはなりません
リモート プロシージャ コールで使用される共用体は、共用体アームを選択する判別と呼ばれる別のデータ項目に関連付けられている必要があります。 判別を送信する必要があります。 [ignore] 属性を共用体判別に適用することはできません。
MIDL2230
"/server none" が指定されていないため、サーバー側では [nocode] が無視されました
一部の DCE IDL コンパイラでは、サーバー スタブ ファイルが生成されているインターフェイス内のプロシージャに [nocode] 属性が適用されるとエラーが生成されます。 サーバーはすべての操作をサポートする必要があるため、[nocode] をこのモードのプロシージャに適用しないでください。または、MIDL コンパイラ スイッチ /server none を使用して、サーバー ルーチンを生成しないことを明示的に指定する必要があります。
MIDL2231
[local] 以外のインターフェイスでリモート プロシージャが指定されていない。クライアント/サーバー スタブは生成されません
指定されたインターフェイスにはリモート プロシージャがないため、ヘッダー ファイルのみが生成されます。
MIDL2232
カプセル化された共用体に対して指定された既定のケースが多すぎます
カプセル化された共用体は、既定の arm を 1 つだけ持つことができます。
MIDL2233
コクラスに指定された既定のインターフェイスが多すぎます
コクラスには最大 2 つの [既定] メンバーを含めることができます。1 つは発信 (ソース) インターフェイスまたは dispinterface を表し、もう 1 つは受信 (シンク) インターフェイスまたは dispinterface を表します。
MIDL2234
[defaultvtable] を含む項目にも [source] が必要です
defaultvtable インターフェイスは、シンクが V テーブルを介してイベントを受信できるようにするオブジェクトの 2 つ目のソース インターフェイスを作成します。
MIDL2235
フィールドのない共用体の指定は無効です
共用体には少なくとも 1 つのフィールドが必要です。
MIDL2236
範囲外の値
指定されたケース値がスイッチの種類の範囲外です。
MIDL2237
[context_handle] ポインター型に適用する必要があります
コンテキスト ハンドルは常にポインター型である必要があります。 DCE は、すべてのコンテキスト ハンドルを void * として入力する必要があることを指定します。
MIDL2238
戻り値の型は、handle_tから派生することはできません
handle_t を返すことができません。
MIDL2239
[handle] をコンテキスト ハンドルから派生する型に適用することはできません
型をコンテキスト ハンドルとジェネリック ハンドルの両方にすることはできません。
MIDL2240
"int" から派生するフィールドには、"int" を持つサイズ指定子 "small"、"short"、または "long" が必要です
int 型は 16 ビット システムでは読み取り不可能です。int のサイズはマシン間で異なる場合があるためです。
MIDL2241
field は void または void * から派生してはなりません
void および void * は 、リモート プロシージャのパラメーター型として使用できません。
MIDL2242
field は、ビット フィールドを含む構造体から派生することはできません
ビット フィールドを含む構造体は、リモート プロシージャのパラメーターまたは戻り値の型として使用できません。
MIDL2243
フィールドは、rpcable でない共用体から派生してはなりません
共用体を送信するには、非カプセル化共用体またはカプセル化共用体として指定する必要があります。 通常の C 共用体には、ネットワーク経由で共用体を送信するために必要な判別が欠けています。
MIDL2244
フィールドは、関数へのポインターから派生してはなりません
関数へのポインターをリモート プロシージャに送信することはできません。 関数へのポインターは関数コードを指し、RPC を使用してネットワーク経由で関数コードを送信することはできません。
MIDL2245
パラメーターと戻り値の型の両方で [fault_status] を使用できません
属性 [fault_status] は、プロシージャごとに 1 回だけ使用できます。 [comm_status] 属性は個別に使用できます。
MIDL2246
/O を使用する /Oi モードでは戻り値の型が複雑すぎます
値渡しされる大きな戻り値の型は 、/Os 最適化スタブでのみ処理できます。 このルーチンのスタブは、 /Os 最適化を使用して生成されます。
MIDL2247
/Oi モードでは /Os を使用するジェネリック ハンドル型が大きすぎます
値によって渡される大規模な汎用ハンドル型は、 /Os 最適化スタブでのみ処理できます。 このルーチンのスタブは、 /Os 最適化を使用して生成されます。
MIDL2248
[in,out] パラメーターの [allocate(all_nodes)] は、元のメモリを孤立する可能性があります
[in, out] パラメーターで [allocate(all_nodes)] を使用するには、[out] 方向に連続するメモリを再割当てする必要があるため、[in] パラメーターを孤立させる必要があります。 この使用は推奨されません。
MIDL2249
[ref] ポインターを共用体アームとして持つことはできません
参照ポインターは常に有効なメモリを指す必要がありますが、参照ポインターを持つ [in, out] 共用体は、[in] 方向で別の型を使用した場合に参照ポインターを返す場合があります。
MIDL2250
/Os を使用した /Oi モードでは、コンテキスト ハンドルの戻り値はサポートされていません
MIDL では、完全に解釈された最適化モードでのコンテキスト ハンドルはサポートされていません。 混合モード最適化への切り替え。
MIDL2251
/Oi モードではサポートされていない追加の [comm_status] または [fault_status] パラメーターの使用 (/Os を使用)
[comm_status] 属性と [fault_status] 属性は、 /Os 最適化スタブでのみ処理できます。 このルーチンのスタブは、 /Os 最適化を使用して生成されます。
MIDL2252
/Os を使用する /Oi モードでは [represent_as] または [user_marshal] に不明な型を使用することはできません
IDL ファイルまたはインポートされた IDL ファイルで定義されていないローカル型の [represent_as] 属性の使用は、 /Os 最適化スタブでのみ処理できます。 このルーチンのスタブは、 /Os 最適化を使用して生成されます。
MIDL2253
/Oi モードの戻り値の型で [transmit_as] または [represent_as] がサポートされていない配列型 (/Os を使用)
[transmit_as] または [represent_as] が適用された配列を返す場合は、 /Os 最適化スタブでのみ処理できます。 このルーチンのスタブは、 /Os 最適化を使用して生成されます。
MIDL2254
/Os を使用する /Oi モードで [transmit_as] または [represent_as] がサポートされていない配列型
このアクションは、完全に解釈された最適化ではサポートされていません。 混合モード最適化への切り替え。
MIDL2255
[コールバック] には /ms_ext が必要です
[callback] 属性は Microsoft 拡張機能であり、 /ms_ext スイッチを有効にする必要があります。 /ms_ext をオーバーライドする /osf ではコンパイルしないでください。
MIDL2256
循環インターフェイスの依存関係
このインターフェイスは、それ自体 (直接的または間接的) を基本インターフェイスとして使用します。
MIDL2257
ルート インターフェイスとして使用できるのは IUnknown のみです
現時点では、すべてのインターフェイスにルート インターフェイスとして IUnknown が必要です。
MIDL2258
[IID_IS] はインターフェイスへのポインターにのみ適用できます
[iid_is] 属性はインターフェイス ポインターにのみ適用できますが、 IUnknown * へのポインターとして指定できます。
MIDL2259
インターフェイスは、インターフェイスへのポインターコンストラクトでのみ使用できます
インターフェイス名は、基本インターフェイスまたはインターフェイス ポインター以外では使用できません。
MIDL2260
インターフェイス ポインターには UUID/IID が必要です
[iid_is] 式の基本型は UUID/GUID/IID 型である必要があります。
MIDL2261
インターフェイス本体の外部の定義と宣言には、/ms_ext
宣言と定義をインターフェイス本体の外部に配置することは Microsoft 拡張機能であり、 /ms_ext スイッチを使用する必要があります。
MIDL2262
1 つのファイル内の複数のインターフェイスには /ms_ext が必要です
1 つの idl ファイルで複数のインターフェイスを使用することは Microsoft の拡張機能であり、 /osf モードでコンパイルする場合は使用できません。
MIDL2263
[implicit_handle]、[auto_handle]、または [explicit_handle] のいずれか 1 つだけを許可します
各インターフェイスは、これら 3 つの属性のうち 1 つだけを持つことができます。
MIDL2264
[implicit_handle] ハンドルではない型を参照する
暗黙的なハンドルは、ハンドルの種類のいずれかである必要があります。
MIDL2265
[object] プロシージャは "/env win32" でのみ使用できます
[object] 属性を持つインターフェイスは、16 ビット環境では使用できません。
MIDL2266
-env dos/win16 を持つ [callback] は /Oi ではサポートされていません。/Os を使用
16 ビット環境のコールバックは、 /Os 最適化スタブでのみ処理できます。 このルーチンのスタブは、 /Os 最適化を使用して生成されます。
MIDL2267
float/double は/Oi モードの最上位パラメーターとして /Os を使用してサポートされていません
float 型と double 型は、 /Os 最適化スタブによってのみパラメーターとして処理できます。 このルーチンのスタブは、 /Os 最適化を使用して生成されます。 構造体、配列、または共用体内の float 型と double 型は、引き続き/O で処理できます。
MIDL2268
コンテキスト ハンドルへのポインターを戻り値として使用することはできません
コンテキスト ハンドルは、間接の戻り値ではなく、直接の戻り値として使用する必要があります。
MIDL2269
オブジェクト インターフェイス内のプロシージャは、HRESULT を返す必要があります
-[local] 属性を持たないオブジェクト インターフェイス内のすべてのプロシージャは 、HRESULT/SCODE を返す必要があります。
MIDL2270
重複する UUID
UUID は一意である必要があるのと同じです。
MIDL2271
[object] インターフェイスは、IUnknown などの別の [object] インターフェイスから派生する必要があります
インターフェイスの継承は、オブジェクト インターフェイスを使用している場合にのみ許可されます。
MIDL2272
(非同期) インターフェイスは、別の (非同期) インターフェイスから派生する必要があります
オブジェクト インターフェイス (同期インターフェイスと非同期インターフェイスの両方) は、 IUnknown またはその他の基本 OLE インターフェイスから派生する必要があります。
MIDL2273
[IID_IS] 式は IID 構造体へのポインターである必要があります
[iid_is] 式の基本型は UUID/GUID/IID 型である必要があります。
MIDL2274
[call_as] 型は [local] プロシージャである必要があります
[call_as] 型のターゲットが定義されている場合は、[ local] が適用されている必要があります。
MIDL2275
undefined [call_as] をオブジェクト インターフェイスで使用することはできません
[call_as] 型のターゲットを定義する必要があります。 呼び出し元と呼び出し元の両方のアプリケーションに対して call_as ルーチンを指定していることを確認します。
MIDL2276
[auto_handle] を [encode] または [decode] と共に使用することはできません
[ encode] 属性と [ decode] 属性は、明示的なハンドルまたは暗黙的なハンドルでのみ使用できます。
MIDL2277
[encode] または [decode] のインターフェイスでは、通常のプロシージャは使用できません
[encode] または [decode] プロシージャを含むインターフェイスには、リモート プロシージャを含めることはできません。
MIDL2278
最上位の準拠または差異は [encode] または [decode] で許可されていません
最上位レベルの準拠または分散を持つ型は、サイズ変更または延長を提供する方法がないため、型のシリアル化を使用できません。 ただし、それらを含む構造体では、型のシリアル化を使用できます。
MIDL2279
[out] パラメーターに "const" が含まれていない可能性がある
[out] パラメーターは変更されるため、sa 定数として宣言することはできません。
MIDL2280
戻り値に "const" が含まれていない可能性があります
関数が戻るときに関数値が設定されるため、この値を定数として宣言することはできません。
MIDL2281
"retval" 属性の使用が無効です
[省略可能] 属性が使用されていないことと、[retval] パラメーターが一覧の最後のパラメーターであることを確認します。
MIDL2282
複数の呼び出し規則が無効です
1 つのプロシージャに適用できる呼び出し規約は 1 つだけです。
MIDL2283
[object] プロシージャの属性が無効です
上記の属性は、[object] 属性を持たないインターフェイス内のプロシージャにのみ適用されます。
MIDL2284
[out] インターフェイス ポインターは、二重間接参照を使用する必要があります
変更された値はインターフェイスへのポインターであるため、ポインターを返せるようにするには、ポインターの上に別のレベルの間接参照が必要です。
MIDL2285
の呼び出し元として 2 回使用されるプロシージャ [call_as]
名前の競合を回避するために、指定された [local] プロシージャを [call_as] のターゲットとして 1 回だけ使用できます。
MIDL2286
[call_as] ターゲットは、オブジェクト インターフェイスに [local] を含む必要があります
[call_as] のターゲットは、現在のインターフェイスで定義されている [local] プロシージャである必要があります。
MIDL2287
[code] と [nocode] を一緒に使用することはできません
これら 2 つの属性は矛盾しており、一緒に使用することはできません。
MIDL2288
[maybe] 属性または [message] 属性を持つプロシージャに [out] パラメーターがない場合や、戻り値が HRESULT 型またはerror_status_t
プロシージャは返されないで、戻り値を取得する方法はありません。
MIDL2289
関数へのポインターを使用する必要があります
関数型定義は /c_ext モードで使用できますが、関数へのポインターとしてのみ使用できます。 これらは、パラメーターまたはリモート プロシージャの戻り値として送信することはできません。
MIDL2290
関数が RPC 操作で渡されない場合がある
関数と関数ポインターをパラメーターとして渡したり、リモート プロシージャの値を返したりすることはできません。
MIDL2291
/Os を使用した /Oi モードの戻り値として hyper/double はサポートされていません
ハイパーおよびダブルの戻り値は、 /Os 最適化スタブでのみ処理できます。 このルーチンのスタブは、 /Os 最適化を使用して生成されます。
MIDL2292
#pragma パック (プッシュ) と一致しない #pragma pack(pop)
#pragma pack(push) と #pragma pack(pop) は、一致するペアで表示する必要があります。 少なくとも 1 つの #pragma パック (プッシュ) が指定されました。
MIDL2293
stringable 構造体フィールドは byte/char/wchar_t である必要があります
型 [string] は、フィールドがすべて byte 型の構造体、または byte に相当する型定義にのみ適用できます。
MIDL2294
/Os を使用した /Oi モードでは [notify] はサポートされていません
[notify] 属性は、 /Os 最適化スタブでのみ処理できます。
MIDL2295
handle パラメーターまたは戻り値の型は、[object] インターフェイスのプロシージャではサポートされていません
[ オブジェクト] インターフェイスではハンドルを使用できません。
MIDL2296
ANSI C では、左端の配列のバインドのみを指定できません
準拠配列では、ANSI C では、左端の (最も重要な) 配列バインドのみを指定できません。 複数のディメンションが準拠している場合、MIDL は他の適合ディメンションに "1" を配置しようとします。 他のディメンションが別の型定義で定義されている場合は、これを実行できません。 これを回避するには、配列宣言にすべての配列ディメンションを配置してみてください。 いずれの場合も、コンパイラによって実行される配列インデックス作成の計算に注意してください。実際のサイズを使用して独自の計算を行う必要がある場合があります。
MIDL2297
/Os を使用する /Oi モードでは、値ごとの共用体パラメーターはサポートされていません
このアクションは、完全に解釈された最適化ではサポートされていません。 混合モード最適化への切り替え。
MIDL2298
[version] 属性が [object] インターフェイスで無視される
[object] 属性は COM インターフェイスを識別します。 COM インターフェイスのインターフェイス属性リストに [ version] 属性を含めることはできません。
MIDL2299
[size_is] または [max_is] 属性が固定配列で無効です
固定サイズの配列では、 size_is 属性または max_is 属性を使用できません。
MIDL2300
[オブジェクト] インターフェイスで [encode] または [decode] が無効です
[object] 属性は COM インターフェイスを識別します。 [encode] 属性と [ decode] 属性を使用すると、シリアル化が可能になります。 つまり、データ マーシャリングとアンマーシャルのバッファーを提供および制御できますが、COM インターフェイスでシリアル化を実行することはできません。
MIDL2301
型の [encode] または [decode] には /ms_ext が必要です
シリアル化は DCE-IDL 仕様の一部ではありません。 / ms_ext コマンドライン スイッチを使用する必要がある Microsoft 拡張機能です。
MIDL2302
/env win16 または /env dos では int がサポートされていません
16 ビットの Microsoft プラットフォームでは、IDL ファイルでの int 型の使用はサポートされていません。 int 型を小、、またはで修飾します。
MIDL2303
[bstring] は、"char" または "whchar_t" へのポインターにのみ適用できます
このエラーは廃止されました。 これは、下位互換性のためにのみ提供されます。
MIDL2304
[object] インターフェイスのプロシージャの属性が無効です
指定した属性は、COM インターフェイスのプロシージャでは使用できません。
MIDL2305
[object] インターフェイスの属性が無効です
指定した属性は、COM インターフェイスでは使用できません。
MIDL2306
/O を使用する /Oi モードでは、パラメーターまたはスタックが多すぎます
この警告は廃止されました。 これは、下位互換性のためにのみ提供されます。 これは、リモート プロシージャを呼び出すと、スタックが 64 K を超えて増加することを示します。
MIDL2307
ACF ファイル typedef に属性がないため、効果はありません
IDL ファイルには、属性を持たない typedef ステートメントがすべて含まれている必要があります。 これらは ACF ファイルでは発生しません。 その場合、MIDL コンパイラはそれらを冗長として解釈し、無視します。
MIDL2308
/Os を使用する /Oi モードでは、__stdcallまたは__cdecl以外の呼び出し規則はサポートされていません
__pascal__fastcallなどの呼び出し規則によって、スタックの形式が変更されます。 /Oi モードでは、__stdcall__cdecl呼び出し規則のみがサポートされます。 他の呼び出し規則を使用する必要がある場合は、 /Os モードを使用します。
MIDL2309
インターフェイス内の委任メソッドが多すぎます。Windows 2000 以上が必要です
あるインターフェイスは、別のインターフェイスから継承できます。 その場合、基本インターフェイスのメソッドは委任されたものと見なされます。 256 個を超える委任されたメソッドを含めることができる派生インターフェイスはありません。
MIDL2310
/env mac または /env powermac では、自動ハンドルはサポートされていません
PowerMac の IDL ファイルをコンパイルするときに、自動バインド ハンドルを使用することはできません。 明示的または暗黙的なハンドルを指定する必要があります。
MIDL2311
mktyplib 互換モードでは、ライブラリ ブロック外のステートメントが無効です
IDL ファイルをコンパイルするときに 、/mktyplib203 コマンド ライン スイッチを指定する必要がある場合があります。

注:
Mktyplib.exe ツールは古くなっています。 代わりに MIDL コンパイラを使用してください。


MIDL2312
mktyplib 互換モードを使用しない限り、構文が正しくありません
IDL ファイルをコンパイルするときに 、/mktyplib203 コマンド ライン スイッチを指定する必要がある場合があります。

注:
Mktyplib.exe ツールは古くなっています。 代わりに MIDL コンパイラを使用してください。


MIDL2313
定義が正しくありません。mktyplib 互換モードでは typedef を使用する必要があります
IDL ファイルをコンパイルするときに 、/mktyplib203 コマンド ライン スイッチを指定する必要がある場合があります。

注:
Mktyplib.exe ツールは古くなっています。 代わりに MIDL コンパイラを使用してください。


MIDL2314
インターフェイス ポインターに対して明示的なポインター属性 [ptr] [ref] が無視される
インターフェイスへのポインターに IDL 属性を指定することはできません。
MIDL2315
/Oi モードは PowerMac 用に実装されず、/Os に切り替えられる
MIDL2316
属性で使用される式の型が無効です
ポインターの既定値は定数である必要があります。
MIDL2317
パイプで使用されている無効な型
パイプは、基本的な IDL データ型に制限されます。 たとえば、配列のパイプを指定することはできません。
MIDL2318
プロシージャは/Oicf を使用してパイプを使用します
選択したモードでは、パイプはサポートされていません。 MIDL コンパイラは、インターフェイスで 1 つ以上のパイプの使用を検出しました。 そのため、IDL ファイルは /Oicf モードでコンパイルされます。
MIDL2319
プロシージャには、/Oif、切り替えモードを使用する必要がある属性があります
/Oif モードで [async] プロシージャをコンパイルする必要があります。
MIDL2320
最適化要件の競合、 を最適化できない
このエラーは、多くの場合、 /Os/Oi (または /Oi のバリアント) MIDL コンパイラ モードの両方を指定したことを示します。 また、IDL ファイルと ACL ファイルで指定した機能では、両方のモードを使用する必要がある場合もあります。 最適化するには、1 つのモードまたはもう 1 つのモードを選択する必要があります。
MIDL2321
パイプを配列要素または構造体または共用体のメンバーにすることはできません
パイプ データ型は、最上位レベルのパラメーターにのみ指定できます。
MIDL2322
パイプの使用が無効です
[transmit_as]、[represent_as]、または [user_marshal] 属性でパイプ使用することはできません。 また、パイプを戻り値の型として使用することはできません。
MIDL2323
機能には、高度な解釈された最適化オプションが必要です。use -Oicf
このエラーは、 /robust などの MIDL コンパイラ コマンド ライン スイッチで /Oicf モードを使用する必要があることを示します。
MIDL2324
機能には、高度な解釈された最適化オプションが必要です。use -Oicf
この警告は、 /robust などの MIDL コンパイラ コマンド ライン スイッチで /Oicf モードを使用する必要があることを示します。
MIDL2329
最適化オプションが段階的に廃止されている場合は、-Oic を使用します
/Oi1 最適化モードが MIDL コマンド ラインで指定されました。 このモードはサポートされなくなり、代わりに /Oicf を使用する必要があります。
MIDL2330
最適化オプションが段階的に廃止されている場合は、-Oicf を使用します
/Oi2 最適化モードが MIDL コマンド ラインで指定されました。 このモードはサポートされなくなり、代わりに /Oicf を使用する必要があります。
MIDL2331
最適化オプションが段階的に廃止されている場合は、-ic を使用します
i1 最適化モードが [optimize] ACF 属性で指定されました。 このモードはサポートされなくなり、代わりに icf を使用する必要があります。
ACF ファイルの例:
[optimize("i1")] roo();    //MIDL 2331
MIDL2332
最適化オプションが段階的に廃止されている場合は、-icf を使用します
i2 最適化モードは[optimize] ACF 属性で指定されました。 このモードはサポートされなくなり、代わりに icf を使用する必要があります。
ACF ファイルの例:
[optimize("i2")] roo();    //MIDL 2332
MIDL2333
-old スイッチと -new スイッチは古くなっています。-oldtlb と -newtlb を使用します
このメッセージは廃止され、MIDL では省略されなくなりました。
MIDL2334
引数の値が無効です
/O コマンド ライン スイッチの許可されるバリアントには、 /Os/Oi/Oic/Oicfおよび /Oif が含まれます。
MIDL2335
定数の式型が無効です
式は定数に評価されません。
MIDL2336
列挙型の式の型が無効です
列挙型定義の列挙値は、整数型には評価されません。
MIDL2337
未満足の前方宣言
MIDL コンパイラは、前方宣言の定義を解決できませんでした。
MIDL2338
スイッチは矛盾しています
IDL ファイルをコンパイルするときに、 /osf/ms_ext の両方のコマンド ライン スイッチを使用することはできません。 いずれか一方を選択する必要があります。
MIDL2339
MIDL では、rpc 非対応共用体の HOOKOLE 情報を生成できません
このエラーは廃止されました。 これは、下位互換性のために厳密に提供されています。
MIDL2340
共用体の case 式が見つかりません
共用体の各フィールドには、定数式を含む case ステートメントが必要です。
MIDL2341
[user_marshal] と [wire_marshal] は -Oi フラグと -Oic フラグでサポートされていません。-Os または -Oicf を使用します
[user_marshal] 属性と [wire_marshal] 属性には、 /Oicf (高速書式指定文字列を含むコードレス プロキシ) または /Os (混合モード マーシャリング) でのみ使用できる特定の最適化機能が必要です。
MIDL2342
パイプは、データのシリアル化 、つまり [エンコード] や [デコード] では使用できません
[encode] 属性または [decode] 属性を持つプロシージャに、パイプをパラメーターとして渡すことはできません。
MIDL2343
すべてのパイプ インターフェイス ポインターは、単一の間接参照を使用する必要があります
この方法では、パイプ インターフェイスへのポインターへのポインターを使用することはできません。
MIDL2344
[iid_is()] はパイプ インターフェイス ポインターと共に使用できません
このメッセージは廃止されました。 このメッセージは、コンパイラによって使用されなくなりました。
MIDL2345
無効または適用できない -lcid スイッチ
指定したローカル識別子 (LCID) が無効です。
MIDL2346
指定された lcid は、前の仕様とは異なります
/lcid と [lcid] で指定された値は異なります。 MIDL コンパイラでは、最後に定義されたものが使用されます。
MIDL2347
importlib はライブラリ ブロックの外部では使用できません
すべての [importlib] ステートメントは、[ライブラリ] ブロック内で実行する必要があります。
MIDL2348
浮動小数点値が無効です
このエラーは MIDL によって生成されません。 このエラーが発生した場合は、IDL ファイル、ACF ファイル、ヘッダーなど、エラーを再現するために必要なすべてのファイルを提供するバグを Microsoft に報告してください。
MIDL2349
無効なメンバー
プロシージャをライブラリのメンバーにすることはできません。
MIDL2350
無効なメンバーの可能性
ライブラリの有効なメンバーにするには、ライブラリ要素はモジュール、ディスパッチインターフェイス、コクラス、if ステートメント、構造体、共用体、列挙体、または前方宣言である必要があります。
MIDL2351
パイプとインターフェイスの種類の不一致
このメッセージは廃止されました。
MIDL2352
実行時に、string、varying array、conformant array、および完全なポインター パラメーターとパイプ パラメーターとの互換性がない可能性があります
1 つ以上の [in] 文字列、さまざまな配列、準拠する配列、完全なポインター パラメーター、および [in] パイプ パラメーターを組み合わせたメソッドにより、Windows コンピューター上の ncacn_* および ncalrpc プロトコル シーケンスでのみ実行されるスタブが生成されます。 スタブを使用して ncadg_* プロトコル シーケンスを呼び出すか、他の OSF DCE RPC ベンダーからの呼び出しを受け入れると、実行時にサーバーに障害が発生する可能性があります。 このエラーは、Windows Server 2003 以降で発生します。
MIDL2353
パラメーターは に存在する必要があります
非同期ハンドルは [in] パラメーターである必要があります。
MIDL2354
[async] オブジェクトのパラメーター型は、インターフェイスへのダブル ポインターである必要があります
パラメーターの型は IAsyncManager **である必要があります。
MIDL2355
非同期ハンドルの種類が正しくありません
ハンドル型は 、IAsyncManager または IAsyncManager から派生した型 である必要があります。
MIDL2356
「内部」スイッチはサポートされていない機能を可能にし、注意して使用して下さい
このスイッチは使用しないでください。
MIDL2357
非同期プロシージャで自動ハンドルを使用できない
[async] 属性を持つプロシージャには、明示的なハンドルが必要です。
MIDL2358
error_status_tには [comm_status] と [fault_status] の両方が必要です
プロシージャが IDL 属性 [maybe] または [message] で指定されましたが、戻り値の型には ACF 属性 [comm_status] または [fault_status] のみが含まれます。 両方の ACF 属性が必要です。
ACF ファイルの例:
[comm_status] roo();    //MIDL 2358
[fault_status] bar();    //MIDL 2358
[comm_status, fault_status] baz();    //OK
MIDL2359
このコンストラクトはライブラリ ブロック内でのみ許可されます
モジュールはライブラリ ブロック内でのみ実行できます。
MIDL2360
型の再定義が無効です
存在しない型に対して新しい型が再帰的に定義されました。
例:
typedef roo roo[10];    //MIDL 2360
MIDL2361
[vararg] 属性を持つプロシージャには、SAFEARRAY(VARIANT) パラメーターが必要です。param order is [vararg], [lcid], [retval]
[vararg] 属性を持つプロシージャのほとんどのパラメーターは、 SAFEARRAY(VARIANT) パラメーターの前に指定する必要があります。 SAFEARRAY(VARIANT) パラメーターが存在する必要があります。 パラメーター リストに [ lcid] 属性を持つパラメーターが含まれている場合は、 SAFEARRAY(VARIANT) パラメーターに従う必要があります。 パラメーター リストに [retval] 属性を持つパラメーターが含まれている場合は、[lcid] 属性を持つパラメーターの後に指定する必要があります。
MIDL2363
インターフェイス内のメソッドが多すぎる場合は、Windows 2000 以上が必要です
/Oicf モードでコンパイルする場合、MIDL コンパイラはインターフェイスで 1024 を超えるメソッドを許可しません。
MIDL2364
スイッチが段階的に廃止される
/hookole、/env win16、/env の各スイッチは廃止されています。
MIDL2365
IAdviseSink、IAdviseSink2、または IAdviseSinkEx から派生することはできません
これらのインターフェイスは拡張できません。
MIDL2366
既定値を割り当てることができません
パラメーターに既定値を割り当てることは Visual Basic では許可されますが、C++ では許可されません。 C++ を使用している場合、既定値は無視されます。
MIDL2367
DOS/Win16/MAC のタイプ ライブラリの生成はサポートされていません
MIDL では、16 ビット型ライブラリはサポートされていません。
MIDL2368
タイプ ライブラリの生成エラー(無視)
タイプ ライブラリの生成中に致命的でないエラーが発生しました。
MIDL2369
/Os を使用して /Oi のスタック サイズを超えました
-Oi 最適化モードは、パラメーターのスタック領域が 128 バイトに制限されています。 コンパイラは、この制限を回避するために Os 最適化モードに自動的に切り替わりました。
この警告を回避するには、-Oicf または -Os 最適化モードを使用します。 最適化モードは、-Oi の代わりに -Oicf または -Os を指定するか、ACF ファイル内の関数に [optimize9"icf")] 属性または optimize[("s")] 属性を追加することで、コマンド ラインで変更できます。
通常、この警告は、大きな構造体を値でパラメーターとして渡す場合に発生します。 代わりに構造体へのポインターを渡すことで、必要なスタック サイズを小さくできます。
例:
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
/robust の使用には /Oicf、切り替えモードが必要です
コマンド ラインで /robust スイッチを指定する場合は、/Oicf モードでコンパイルする必要があります。
MIDL2371
指定された範囲が正しくありません
[range] 属性で指定された最大値が、最小値より小さい。
例:
void roo([range(3,2)] int a);    //MIDL 2371
MIDL2372
[async_uuid] インターフェイスの [in] パラメーターと [out] パラメーターの組み合わせが無効です
この種類のインターフェイスでは、[in] パラメーターまたは [out] パラメーターを持つ属性の単純な組み合わせのみが許可されます。
MIDL2373
DOS、Win16、MAC プラットフォームは /robust ではサポートされていません
MIDL では、Microsoft Windows 2000 以降で /robust スイッチがサポートされています。
MIDL2374
オブジェクト インターフェイスに対する NT 3.51 スタイルのスタブレス プロキシのサポートは段階的に廃止されます。/Oif を使用します。
このモードは廃止されました。 /Oif または /Oicf を使用します。
MIDL2375
/robust を使用する [encode] または [decode] には /Oicf が必要です
/robust スイッチが指定されている場合、シリアル化を実行できません。
MIDL2377
競合する属性が指定されました
[context_handle_serialize] と [context_handle_noserialize] の両方が指定されました。
MIDL2378
[serialize], [noserialize] をcontext_handlesに適用できます
ACF 属性 [context_handle_serialize] または [context_handle_noserialize] は、コンテキスト ハンドルである型にのみ適用できます。
IDL ファイルの例:
typedef /*[context_handle] */ void *PV;    //Note: PV is *not* a context handle.
ACF ファイルの例:
typedef [context_handle_serialize] PV;    //MIDL 2378
MIDL2379
コンパイラが書式指定文字列表現の制限に達しました。 アドバイスについては、ドキュメントを参照してください。
MIDL コンパイラの書式指定文字列の制限は 64 KB です。 このエラーは、通常、IDL ファイルに他の IDL ファイルが含まれている場合に発生します。 すべてのインクルード ステートメントによって生成される複合 IDL ファイルが、マーシャリング エンジン インタープリターの型表現テーブルの制限を超えています。 IDL ファイルで include ディレクティブではなく、import ディレクティブを使用してみてください。 詳細については、「システム ヘッダー ファイルのインポートインクルード、インポート」を参照してください。
MIDL2380
ワイヤ形式が正しくない可能性があります。-ms_conf_structを使用する必要がある場合があります。アドバイスについてはドキュメントを参照してください
MIDL コンパイラは、データの読み取り可能な形式を生成できませんでした。 このエラーを取得する一般的な方法の 1 つは、複雑な構造体内に ms_conf_struct を定義することです。
MIDL2381
スタック サイズまたはオフセットが 64 K の制限を超えています。 アドバイスについては、ドキュメントを参照してください。
呼び出しの結果、スタックは 64 KB を超えます。 データを小さなブロックに渡してみてください。
MIDL2382
64 ビット プラットフォームに対して強制されるインタープリター モード
64 ビット プラットフォームでは、/Oicf コンパイル モードが必要です。
MIDL2383
配列要素のサイズが 64 KB の制限を超えています。
すべての配列要素のサイズは 64 KB 未満である必要があります。
MIDL2384
メソッドには [Icid] パラメーターを 1 つだけ指定できます。last パラメーターに [retval] がある場合は last または second から last にする必要があります
[lcid] 属性を持つパラメーターは、最後に発生する必要があります。 唯一の例外は、[retval] 属性を持つパラメーターがある場合です。 両方が発生する場合、パラメーター リストの最後のパラメーターの 2 番目のパラメーターには[ lcid] 属性が必要です。 最後のパラメーターには [retval] 属性が必要です。
MIDL2385
midl_pragmaの構文が正しくありません
MIDL コンパイラは、midl_pragma ステートメントで不明な構文エラーを検出しました。
MIDL2386
/osf モードでは、__int3264はサポートされていません
__int3264を使用する必要がある場合は、/ms-ext モードでコンパイルします。
MIDL2387
タイプ ライブラリの未解決のシンボル
コンパイラは、タイプ ライブラリ内の正式な宣言または参照型を解決できませんでした。
MIDL2388
非同期パイプを値渡しできません
非同期パイプは、参照またはアドレスで渡す必要があります。
MIDL2389
解釈されたプロシージャのパラメーター オフセットが 64 KB の制限を超えています
通常、このエラーは、プロシージャにパラメーターが多すぎることを意味します。
MIDL2390
配列要素が無効です
パイプは配列要素として使用できません。
MIDL2391
dispinterface メンバーは、メソッド、プロパティ、またはインターフェイスである必要があります
ディスパッチインターフェイスには、型定義、構造体、列挙体、または共用体を含めることはできません。
MIDL2392
[local] プロシージャ ([call_as] なし)
[local] 属性を持つオブジェクト プロシージャには、[call_as] 属性も必要です。
MIDL2393
/Oicf に切り替える多次元ベクトル
/Os 最適化モードでは、多次元の非固定サイズ配列はサポートされていません。 コンパイラは、この関数の最適化モードを /Oicf に自動的に切り替えました。
この警告をグローバルに抑制するには、MIDL コマンド ラインで /Oicf を指定するか、IDL ファイルで midl_pragma 警告 (無効: 2393) を使用してコンパイラ モードを変更します。 最適化モードは、ACF ファイル内の関数に [optimize("icf")] 属性を追加することで、個々の関数に対して変更できます。
次の例では、この警告を示します。
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
64 KB ポリモーフィック型の Oleaut32.dll サポートがないため、ライブラリ ブロックで型またはコンストラクトがサポートされていません
OLE オートメーションでは、ポリモーフィック型 (_int3264、INT_PTRなど) はサポートされていません。 これらの型には、32 ビットと 64 ビットのプラットフォーム間の互換性のないデータ表現があります。 リモート呼び出しは、64 ビット プラットフォームで実行時に失敗します。

注:
Windows 2000 リリースの時点では、実行時に 32 ビットの TLB 情報を変換することで、64 ビット TLB ファイルが OLE Automation でサポートされていることに注意してください。 したがって、MIDL では 32 ビットの TLB 生成のみがサポートされます。


ヘッダー ファイルを生成するためだけに MIDL を使用している場合、 /notlb スイッチは TLB ファイルの生成を抑制します。

MIDL2396
64b 用に生成されている古いインタープリター コード
このエラーは廃止されました。 このエラーが表示される場合は、IDL ファイル、ACF ファイル、および完全な MIDL コマンド ラインを提供する Microsoft にバグを報告してください。
MIDL2397
コンパイラ スイッチはサポートされなくなりました
指定したスイッチまたはスイッチはサポートされなくなりました。
MIDL2398
MIDL エンジンを実行できません
Windows 2000 リリース (MIDL バージョン 5.03.279) の時点で、MIDL コンパイラは、Midl.exe (ドライバー)、Midlc.exe (コンパイラ エンジン) の 2 つの実行可能ファイルを使用して実装されています。 このエラーは、Midl.exe が Midlc.exe を起動できないことを示します。 Midlc.exe が Midl.exe と同じディレクトリ内にあり、同じバージョンであることを確認します。
このエラーは、Midl.exe のコピーによって発生している可能性がありますが、最新のディストリビューションから Midlx.exe されていない可能性があります。 実行可能ファイルのバージョン番号を確認するには、パラメーターを指定せずにコマンド ラインで midl または midlc を実行します。
MIDL2399
ドライバーからの不適切なコマンド
Windows 2000 リリース (MIDL バージョン 5.03.279) の時点で、MIDL コンパイラは、Midl.exe (ドライバー)、Midlc.exe (コンパイラ エンジン) の 2 つの実行可能ファイルを使用して実装されています。 このエラーは、Midl.exe から Midlc.exe にコマンドを渡すために使用される一時ファイルが見つからないか破損していることを示します。 Midlc.exe が Midl.exe と同じディレクトリにあり、同じバージョンであることを確認します。
このエラーは、Midlc.exe を直接実行しようとしたり、最新のディストリビューションから Midlc.exe ではなく Midl.exe をコピーしたりすることによって発生している可能性があります。 実行可能ファイルのバージョン番号を確認するには、パラメーターを指定せずにコマンド ラインで midl または midlc を実行します。
MIDL2400
ole オートメーションの場合、省略可能なパラメーターは VARIANT または VARIANT * にする必要があります
OLE オートメーションでは、すべての [省略可能] パラメーターが VARIANT または VARIANT* 型である必要があります。
OLE オートメーションでは、VARIANT 以外のパラメーターを使用すると、実行時に呼び出しが失敗したり、[省略可能] パラメーターの未定義のデータが渡されたりする可能性があります。
MIDL2401
[defaultvalue] は、VARIANT 以外のと [省略可能] に適用されます。 [省略可能] を削除してください
[defaultvalue] 属性は [省略可能] を意味します。 [ 省略可能] 属性は必要ありません。
MIDL2402
[省略可能] 属性がライブラリ ブロックの外部で適用できない
[ 省略可能] 属性によって暗黙的に示される機能は、ライブラリ ブロックの外部のインターフェイスに対して生成されるプロキシには適用できません。
MIDL2403
[Icid] パラメーターのデータ型は long である必要があります
OLE オートメーションでは、[Icid] 属性を持つパラメーターが long 型である必要があります。
MIDL2404
[propput]、[propget]、または [propref] のプロシージャは、[省略可能] の後に複数の必須パラメーターを含めることはできません
[propput]、[propget]、または [propputref] を使用する場合、最後のパラメーターの後に [省略可能] を指定せずに複数のパラメーターを指定することはできません。
MIDL2405
[comm_status] または [fault_status] の酸洗には -Oicf が必要です
古い -Oi 最適化モードでは、[ comm_status] または [ fault_status] とピクルス (つまり、[ エンコード] または [ デコード] を使用) を使用するプロシージャまたはパラメーターはサポートされていません。
この警告は、MIDL コマンド ラインで -Oicf を指定するか、ACF ファイルの関数に [optimize("icf:)] 属性を追加することで、個々の関数に対して -Oicf を指定することで、グローバルに抑制できます。
一般に、-Oicf 最適化モードは -Oi モードよりも推奨されます。
MIDL2406
midl ドライバーとコンパイラのバージョンの不一致
Windows 2000 リリース (MIDL バージョン 5.03.279) の時点で、MIDL コンパイラは 2 つの実行可能ファイル (Midl.exe (ドライバー)、および Midlc.exe (コンパイラ エンジン) を使用して実装されています。 このエラーは、Midl.exe のバージョンが Midlc.exe のバージョンと一致しないことを示します。
このエラーは、Midl.exe コピーによって発生している可能性がありますが、最新のディストリビューションから Midlc.exe されていません。 実行可能ファイルのバージョン番号を確認するには、パラメーターを指定せずにコマンド ラインで midl または midlc を実行します。
MIDL2407
中間ファイルが指定されていない: Midl.exe を使用します
Windows 2000 リリース (MIDL バージョン 5.03.279) の時点で、MIDL コンパイラは、Midl.exe (ドライバー)、Midlc.exe (コンパイラ エンジン) の 2 つの実行可能ファイルを使用して実装されています。 このエラーは、Midl.exe を使用する代わりに、Midlc.exe が直接実行されたことを示します。
MIDL2408
プロシージャ内のパラメーターに関する処理の問題
このエラーは、TLB からデータをインポートするとき、およびプロシージャに無効なパラメーターがある場合に発生する可能性があります。
このエラーが表示された場合は、Microsoft にバグを報告してください。 IDL ファイル、ACF ファイル、TLB ファイル、および MIDL コマンド ライン全体を指定します。
MIDL2409
構造体内のフィールドに関する処理の問題
このエラーは、TLB からデータをインポートするとき、および構造体に無効な構造体または共用体フィールドがある場合に発生する可能性があります。
このエラーが表示された場合は、Microsoft にバグを報告してください。 IDL ファイル、ACF ファイル、TLB ファイル、および MIDL コマンド ライン全体を指定します。
MIDL2410
内部コンパイラの不整合が検出されました。書式指定文字列オフセットが無効です。 詳細については、 ドキュメント をご覧ください。
MIDL コンパイラは、内部データ構造で無効な値を検出しました。 これは、再帰的な構造体、またはコンパイラが内部データの表現の独自の制限に違反した場合に発生する可能性があります。 問題を特定したり回避したりするには、IDL ファイルを簡略化してみてください。 これを行うには、複雑なパラメーターと再帰的なデータ構造を簡略化するか、IDL ファイルを分割して小さくします。 このメッセージには、問題に関する追加情報を含む診断印刷が添付されている場合があります。
このエラーが表示された場合は、Microsoft にバグを報告してください。 IDL ファイル、ACF ファイル、完全な MIDL コマンド ライン、診断出力 (存在する場合) を指定します。
MIDL2411
内部コンパイラの不整合が検出されました。型オフセットが無効です。 詳細については、 ドキュメント をご覧ください。
MIDL コンパイラは、内部データ構造で無効な値を検出しました。 これは、再帰的な構造体、またはコンパイラが内部データの表現の独自の制限に違反した場合に発生する可能性があります。 問題を特定したり回避したりするには、IDL ファイルを簡略化してみてください。 これを行うには、複雑なパラメーターと再帰的なデータ構造を簡略化するか、IDL ファイルを分割して小さくします。 このメッセージには、問題に関する追加情報を含む診断印刷が添付されている場合があります。
このエラーが表示された場合は、Microsoft にバグを報告してください。 IDL ファイル、ACF ファイル、完全な MIDL コマンド ライン、診断出力 (存在する場合) を指定します。
MIDL2412
SAFEARRAY(roo) 構文はライブラリ ブロックの外部ではサポートされていません。プロキシには LPSAFEARRAY を使用してください
明示的に型指定された SAFEARRAY は、ライブラリ ブロックの外部では使用できません。 代わりに LPSAFEARRAY を使用してください。
このエラーの例を次に示します。
void roo(SAFEARRAY(long) *a); //MIDL2412 when outside a library block
void roo(LPSAFEAEEAY a);         //OK
MIDL2413
ビット フィールドはサポートされていません
C スタイルのビット フィールドは MIDL ではサポートされていません。 これは、プロキシの生成と TLB の生成に適用されます。
MIDL2414
-OI を使用して -Oicf で [decode] を持つ浮動小数点または複合戻り値の型はサポートされていません
浮動小数点または構造体/共用体の戻り値の型を持つプロシージャは、-Oicf スタイルのピクルスではサポートされていません。 32 ビットの回避策は、データをシリアル化するときに -Oi 最適化モードを使用することです ([エンコード] または [デコード] を使用)。 ただし、古い -Oi スタイルのインタープリターと酸洗のサポートは Windows 2000 リリース後に段階的に廃止される予定であるため、この問題の回避策としてポインターを使用することを強くお勧めします。 また、通常、問題の原因となる戻り値の代わりに [out, ref] ポインターを使用するようにインターフェイス メソッドを変更すると、ネットワーク上で完全に下位互換性があり、アプリ レイヤーから簡単に非表示にできることに注意してください。
この警告は、MIDL コマンド ラインで -Oi を指定するか、ACF ファイルの関数に [optimize("i")] 属性を追加することで、個々の関数に対して -Oi を指定することで、グローバルに抑制できます。
次の例は、この問題を示しています。
roo.idl:
double GetDouble();
roo.acf:
[decode] GetDouble();
この制限を回避する 1 つのオプションは、戻り値を使用するのではなく、結果を保持するために [out] パラメーターを渡すことです。
roo.idl:
void GetDouble([out] double *result); //top level pointer is a [ref] pointer
roo.acf:
[decode] GetDouble();
前述のように、上記のソリューションは、新しいインターフェイスだけでなく、古いインターフェイスの回避策としても適しています。 新しい "out" 引数のワイヤ表現は、戻り値の場合と同じです (新しい戻り値として void に注意してください)。
MIDL2415
戻り値の型は、[デコード] を使用する場合、64 ビットではサポートされていません
浮動小数点型または構造体/共用体の戻り値の型を持つプロシージャは、データシリアル化を実行する場合 ([ エンコード] または [ デコード] を使用) 場合、64 ビット モードではサポートされません。 これは、64 ビット プラットフォームでサポートされていない古いスタイルの -Oi インタープリターとデータ シリアライザーに関連しています。 詳細については、MIDL2414の説明を参照してください。
このエラーの例を次に示します。
roo.idl:
double GetDouble();
roo.acf:
[decode] GetDouble();
新しいインターフェイスと古いインターフェイスの両方の回避策として、次の情報が推奨されます。 戻り値を使用する代わりに、[out] パラメーターを使用して結果を保持します。
roo.idl:
void GetDouble([out] double *result); //top level pointer is a [ref] pointer.
roo.acf:
[decode] GetDouble();
[ref, out] ポインターまたは double のワイヤ表現は double と同じであるため、このソリューションはワイヤ上で完全に下位互換性があることに注意してください。
MIDL2416
転送される型には、[wire_marshal] または [user_marshal] の完全なポインターが含まれていない場合があります
[ wire_marshal] 属性または [ user_marshal] 属性を持つ型には、完全な ([ ptr]) ポインターが含まれていない場合があります。 代わりに [ unique] または [ ref] を使用します。
次の例では、このエラーを示します。
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
送信される型は、ポインターであるか、[wire_marshal] と [user_marshal] の定数サイズである必要があります
[ wire_marshal] 属性または [ user_marshal] 属性を持つ最上位の型は、コンパイル時に適切に定義されたサイズである必要があります。 これらは、適合する配列またはさまざまなサイズの配列を含めることはできません。
次の例では、このエラーを示します。
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
[propget] を持つプロシージャには、少なくとも 1 つのパラメーターまたは戻り値が必要です
[propget] 属性を持つプロシージャには、プロパティ値を返す何らかの手段が必要です。 少なくとも 1 つの [out] パラメーターまたは戻り値が必要です。
MIDL2461
[readonly] 属性がメソッド レベルで適用されました。
[readonly] 属性は、パラメーター レベルでのみ適用できます。
MIDL2465
適合する配列を含む構造体は、参照渡しする必要があります
RPC の最上位パラメーターは、コンパイル時に適切に定義されたサイズである必要があります。 これらは、適合する配列やさまざまなサイズの配列を含めることはできません。 さらに、ユーザーは、適切に定義されたサイズを持たない型をエンコード/デコードすることはできません。 アプリケーションでは、準拠する構造体/準拠する異なる構造体を参照渡しする必要があります。
次の例では、このエラーを示します。
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
内部コンパイラの問題 <システム エラー コード> - コンパイラは不明な理由で続行できません。 回避策については、ドキュメントを参照してください。
コンパイラを続行できず、エラーの原因は不明です。 16 進数のエラー番号はシステム エラー識別子です。 メモリ不足状態などの外部の問題が原因でコンパイルが失敗した可能性があります。 その場合は、Winerror.h または Ntstatus.h で詳細を確認できます。
通常、このエラーが発生する状況は 2 つあります。
  • MIDL コンパイラは、IDL ファイル内のエラーを検出した後に回復できませんでした。 MIDL が IDL ファイルに関するエラー メッセージを返した場合は、修正して再コンパイルしてみてください。 エラー メッセージがない場合は、エラーを報告する前にコンパイラが失敗した可能性があります。 内部コンパイラ エラーが報告される行で構文エラーを探します。
  • MIDL コンパイラは、指定された最適化オプションの下で正しいコードを生成できませんでした。 コンパイラ モードの変更、混合モード最適化 (/O) でのコンパイル、またはすべての最適化の削除を試してください。 または、/NO_FORMAT_OPT フラグを使用して再コンパイルして、MIDL のプロシージャ記述子と型記述子の既定の最適化を抑制します。
IDL ファイルが正しく、最適化オプションが使用されていない場合でも、このエラーが発生することがあります。 このような場合は、最近の変更を削除したり、データ型を簡略化または再配置したり、プロトタイプを変更したり、IDL ファイルの一部をコメントアウトして問題コードを見つけ始めたりして、エラーが報告された近くにあるコードのセクションを書き直してみてください。
これらのオプションが機能しない場合、または問題が Midl.exe のバグに関連している可能性がある場合は、関連するすべての詳細を Microsoft に通知してください。