LoadMUILibraryA 函数 (muiload.h)

返回与特定语言中性 (LN) 文件关联的特定于语言的资源的句柄。

注意 为了确保正确卸载 DLL,应用程序应将每次对 LoadMUILibrary 的 调用与 对 FreeMUILibrary 的相应调用相匹配。
 

语法

HINSTANCE LoadMUILibraryA(
  [in] PCSTR  pszFullModuleName,
  [in] DWORD  dwLangConvention,
  [in] LANGID LangID
);

参数

[in] pszFullModuleName

指向以 null 结尾的字符串的指针,该字符串指定 LN 文件的名称。

[in] dwLangConvention

在 Windows Vista 之前的操作系统上指定命名约定以命名包含特定于语言的资源文件的目录的标志。 标志互斥,默认值为MUI_LANGUAGE_NAME。

含义
MUI_LANGUAGE_ID
使用语言 标识符 格式解释包含特定于语言的资源文件的文件夹的名称。
MUI_LANGUAGE_NAME
使用语言名称格式解释包含特定于语言的资源文件的文件夹 的名称
 

以下标志作为选项提供,可以与其他任一标志结合使用。

含义
MUI_LANGUAGE_EXACT
如果在资源文件中找不到所标识语言的资源,检查 pwszModuleName 指定的main模块,如果成功,则返回该模块的句柄。

[in] LangID

Windows Vista 之前的操作系统上用户界面资源的语言标识符。 语言标识符不能对应于与以下任何区域设置信息常量关联的语言:

返回值

如果成功,则返回相应特定于语言的资源文件的句柄。

如果失败,此函数将返回 NULL 。 若要获取扩展的错误信息,应用程序可以调用 GetLastError

注解

此函数允许使用 Win32 MUI 资源技术开发的应用程序正确确定在 Windows Vista 之前的操作系统上加载的特定于语言的资源文件。 使用此函数的应用程序不必专门在 Windows Vista 上构建,但它们必须静态链接到 Windows Vista Microsoft Windows SDK中提供的 MUILoad 库。 此函数要求使用标准约定存储可执行文件和特定于语言的资源文件。 有关文件放置的详细信息,请参阅 应用程序部署

以下项会影响此函数加载附属二进制文件。

  • 运行调用函数的应用程序的操作系统版本
  • 在 dwLangConvention 参数中传递的标志
  • 在 LangID 参数中传递的语言标识符的状态
在 Windows Vista 上运行时,此函数加载main模块,而无需重定向。 仅使用 pszFullModuleName 参数,因为资源加载程序函数在调用时会相应地执行重定向。 在 Windows Vista 之前的操作系统上运行时,此函数会考虑应用程序提供的所有参数。 它将二进制加载重定向到与 pszFullModuleName 表示的文件关联的正确附属二进制对。 此过程将重构与文件关联的路径,以模拟资源加载程序函数的 Windows Vista 的行为。

应用程序使用 dwLangConvention 参数指定应探测附属二进制文件的方式。 如果应用程序将此参数设置为MUI_LANGUAGE_ID,则会在具有十六进制字符串值的文件夹中探测二进制文件。 (这些值不包括前导 0x,长度为 4 个字符。 例如,表示 en-US

为“0409”,en 为“0009”。) 如果应用程序将 参数设置为MUI_LANGUAGE_NAME,该函数将使用 Windows Vista 资源加载,该加载使用基于语言名称的文件夹探测来查找附属文件。

LangID 参数中语言标识符的状态会影响资源探测。 如果应用程序将此参数设置为 0,则函数使用预定义的回退逻辑(取决于操作系统)来查找特定于语言的相应资源文件。 当应用程序将 LangID 设置为非零值时,探测机制仅搜索适当命名的文件夹及其关联的中性等效项。 有关详细信息,请参阅 用户界面语言管理

LoadMUILibrary 是基于 LoadLibraryEx 函数构建的,需要对其用法应用类似的注意事项。 具体而言,应为 LoadMUILibrary 返回的任何句柄调用 FreeMUILibrary。 此外,不应从 DllMain 调用 LoadMUILibrary。 有关详细信息,请参阅 LoadLibraryExFreeLibrary 的“备注”部分。

注意

muiload.h 标头将 LoadMUILibrary 定义为别名,它根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 muiload.h
Library Muiload.lib
可再发行组件 Muiload.lib,包含在 Windows 7 Windows SDK中,可在 Windows 2000 专业版、Windows 2000 Server、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008 和 Windows 7 上运行。

另请参阅

FreeMUILibrary

多语言用户界面

多语言用户界面函数