lcid 属性

[lcid] 属性指定区域设置标识符,并启用特定于区域设置的 MIDL 编译器支持。

[
    uuid(uuid-number), 
    lcid(localeID)
    [, optional-attribute-list]
] 
library library-name
{ 
    library-definition-statements
}

function-name([parameter-attribute-list, lcid] long  parameter-name,. . .);

parameters

uuid-number

指定 的通用唯一标识号。

localeID

指定 Windows 国家/地区语言支持中使用的 32 位区域设置标识符。 通常,区域设置标识符以十六进制形式提供。

optional-attribute-list

要应用于 的零个或多个属性。

library-name

软件组件引用 的名称。

library-definition-statements

定义 内容的一个或多个 MIDL 语句。

function-name

指定 IDL 文件中函数的名称。

parameter-attribute-list

将应用于函数参数的零个或多个 MIDL 属性。

parameter-name

指定 IDL 文件中参数的名称。

备注

[lcid] 语法有两种不同的形式:属性的效果取决于使用的语法 - 语句语法或参数语法。

当应用于 语句以及第一个示例中所示的 localeID 参数时, [lcid] 属性标识类型库或函数参数的区域设置,并允许在库块内使用国际字符。

在 MIDL 编译器版本 3.01.75 中,此属性提供的区域设置标识符不仅修饰生成的类型库,而且实际上会更改编译器的行为。 在 语句中,从使用 [lcid] 属性的点开始,MIDL 将接受根据指定区域设置本地化的输入。 特别是,提供对亚洲语言(如日语、中文和朝鲜语)的完全支持 (完整的 DBCS 支持) 。 本地化支持的功能包括:注释、字符串、帮助字符串和标识符。

使用 /lcid 编译器开关使此本地化支持可用于整个输入文件,包括文件名和目录路径,而不仅仅是在库块中。

应用于参数时, [lcid] 属性允许您将区域设置标识符传递给函数,如第二个示例所示。 以下限制适用于 [lcid] 参数:

  • 一个函数最多可以有一个 [lcid] 参数。
  • 参数的数据类型必须为
  • 参数的方向只能为 [in]。
  • [lcid] 参数必须遵循除 [retval] 参数以外的任何其他参数。
  • 不能将 [lcid] 属性应用于 dispinterfacecoclass 参数。

示例

[  
    uuid(12345678-1234-1234-1234-123456789ABC),
    lcid(0x09),
    version(1.0)
] 
library MyLibrary
{
    /* Library definition statements */
};

interface IMyFace : IDispatch
{
    [propget] HRESULT MyFunc([in, lcid] long LocaleID,
                          [out, retval] BSTR * ReturnVal);
    // Other interface definition statements
}

另请参阅

coclass

dispinterface

使用 MIDL 生成类型库

/Lcid

图书馆

ODL 文件语法

ODL 文件示例

retval