不能在此构造中应用指定的属性。 例如,字符串属性适用于
字符
数组或
字符
指针,不能应用于包含两个
短
整数的结构:
typedef [string] struct moo
short x;
short y;
- MIDL2073
- [allocate] 需要 /ms_ext
- 分配属性表示未定义为 DCE RPC 的一部分的 Microsoft 扩展。 若要使用此属性,不能使用 /osf 开关进行编译,这会替代 MIDL 编译器默认开关 /ms_ext
- MIDL2074
- 无效 [分配] 模式
- 指定了 [allocate] 属性构造的无效模式。 这四种有效模式是single_node、all_nodes、on_null,并且始终有效。
- MIDL2075
- 不能使用字符串属性应用 length 属性
- 使用字符串属性时,生成的存根文件调用 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
- 未使用联合时指定的 [switch_is] 属性
- 没有为工会指定任何歧视者。 [switch_is] 属性指示用于在联合字段中选择的歧视者。
- MIDL2079
- 未指定 [uuid]
- 尚未为接口指定 UUID。
- MIDL2080
- [uuid] 在 [local] 接口上忽略
- 在对象接口上使用 [local] 属性会导致 MIDL 编译器忽略 [uuid] 属性。 不能在 RPC 接口上使用这两个属性。
- MIDL2081
- 长度和大小属性表达式之间的类型不匹配
- 长度和大小属性表达式的类型必须相同。 例如,当 [size_is] 表达式的属性变量的类型 为无符号 long 且 [length_is] 表达式的属性变量的类型 为 long 时,将发出此警告。
- MIDL2082
- [string] 属性必须指定为“byte”、“char”或“wchar_t”数组或指针
- 字符串属性不能应用于基类型不是 字节、 字符或 结构 (成员都是 字节 或 字符 类型)的指针或数组。
- MIDL2083
- [switch_is] 表达式的类型与联合的开关类型不匹配
- 如果未指定联合 [switch_type] ,则开关类型与 [switch_is] 字段的类型相同。
- MIDL2084
- [transmit_as] 不得应用于派生自上下文句柄的类型
- 无法将上下文句柄作为其他类型的传输。
- MIDL2085
- [transmit_as] 必须指定可允许的类型
- 指定的 [transmit_as] 类型派生自 Microsoft RPC 无法传输的类型,例如 void、 void *或 int。使用定义的 RPC 基类型;对于 int,请添加 大小说明符(如小、 短或 长 )以限定 int。
- MIDL2086
- [transmit_as] 和 [represent_as] 的传输类型不得为指针或派生自指针
- 传输的类型不能是指针,也不能派生自指针。
- MIDL2087
- 为 [transmit_as] 和 [represent_as] 呈现的类型不得派生自一致性/不同数组、其指针等效或一致/不同结构
- 应用 [transmit_as] 的类型不能从一致性数组或结构派生, (在运行时确定其大小) 的数组或结构。
- MIDL2088
- [uuid] 格式不正确
- UUID 格式不符合规范。 UUID 必须是一个字符串,其中包含长度为 8、4、4、4、4 和 12 位的五个十六进制数字序列。 “12345678-1234-ABCD-EF01-28A49C28F17D”是有效的 UUID。 使用函数 UuidCreate 或实用工具生成有效的 UUID。
- MIDL2089
- uuid 不是十六进制数
- 为接口指定的 UUID 包含十六进制数字表示形式中无效的字符。 字符 0 到 9 和 A 到 F 在十六进制表示形式中有效。
- MIDL2090
- 可选参数必须在所需参数之后出现
- 有关参数列表排序的说明,请参阅 MIDL 语言参考中的 [可选] 。
- MIDL2091
- 使用 [entry] 时需要 [dllname]
- 如果要在 DLL 中指定入口点,则还必须使用 [dllname] 属性指定该 DLL 的名称。
- MIDL2092
- [bindable] 无效,没有 [propget]、[propput]或 [propputref]
- [bindable] 属性仅在属性上有效,因此还必须指定属性访问或属性设置函数之一。
- MIDL2093
- 具有 [propput] 或 [propputref] 的过程必须至少有一个参数
- [propput] 或 [ propputref] 过程必须至少有一个具有要设置的属性的 [in] 参数; [propget] 过程必须至少有一个 [out, retval] 参数才能接收属性或引用。
- MIDL2094
- [id] 属性是必需的
- 此成员函数,由于使用了 dispinterface 语法,因此需要使用 [ id] 属性指定 DISPID。 使用属性和方法指定 dispinterface 时,必须为每个属性和方法指定 DISPID。
- MIDL2095
- ACF 中指定的接口名称与 IDL 文件中指定的接口名称不匹配
- 在当前编译器模式下,ACF 中接口关键字后面的名称必须与 IDL 文件中接口关键字后面的名称相同。 使用 MIDL 编译器开关 /acf 进行编译时,IDL 和 ACF 文件中的接口名称可能有所不同。
- MIDL2096
- 重复属性
- 已指定重复属性或冲突属性。 当两个属性互斥时,通常会发生此错误。 例如,属性 [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 文件中不存在此参数
- 在 IDL 文件中的定义中不存在 ACF 中指定的参数。 ACF 中显示的所有参数、函数和类型定义都必须对应于 IDL 文件中以前定义的参数、函数和类型。
- MIDL2102
- 此数组边界构造不受支持
- MIDL 当前支持以 Array[Lower .. 格式表示数组的上限和下限。 仅当指定数组下限的常量解析为值零时。
- MIDL2103
- 数组绑定规范是非法的
- 固定大小数组的数组边界的用户规范是非法的。 例如:
typedef short Array[-1]
- MIDL2104
- 不支持指向符合性数组或包含符合性数组的数组的指针
- 非法符合数组用法。 有关控制符合性数组的规则,请参阅 数组和 RPC。
- MIDL2105
- pointee/array 不派生任何大小
- 未指定任何大小规范的符合性数组。 可以使用 [max_is] 或 [size_is] 属性指定大小。
- MIDL2106
- 只有固定数组和 SAFEARRAY 在类型库中是合法的
- 已在不能在类型库中使用的库语句中使用了数组类型。
- MIDL2107
- SAFEARRAY 仅在库块内合法
- MIDL 编译器不会将 SAFEARRAY 识别为有效的数据类型,除非生成类型库。
- MIDL2108
- 格式错误的字符常量
- 字符常量中不允许使用行尾字符。
- MIDL2109
- 注释中遇到了文件结尾字符。
- MIDL2110
- 字符串中找到的文件结尾
- 字符串中遇到了文件结尾字符。
- MIDL2111
- 标识符长度超过 31 个字符
- 标识符限制为 31 个字母数字字符。 长度超过 31 个字符的标识符名称将被截断。
- MIDL2112
- 字符串中找到的行尾
- 字符串中已遇到行尾字符。 验证是否已包含终止字符串的双引号字符。
- MIDL2113
- 字符串常量超过 255 个字符的限制
- 字符串超过了允许的最大长度为 255 个字符。
- MIDL2114
- 标识符超过 255 个字符的限制,已被截断
- 标识符超过了允许的最大长度为 255 个字符。 标识符中的过多字符将被截断。
- MIDL2115
- 常量太大
- 常量太大,不能在内部表示。
- MIDL2116
- 数值分析错误
- 编译器无法分析数字标识符。