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,. . .);
参数
-
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] 属性应用于 dispinterface 或 coclass 参数。
示例
[
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
}
另请参阅