SatDLL 示例:在 Win32 应用程序中实现多语言资源

更新:2007 年 11 月

此 SatDLL 示例说明与本地化和全球化有关的若干事情:

  • 如何设置这样的解决方案:它生成一个主 EXE 文件和各附属 DLL,这些 DLL 包含用户界面的不同语言版本。

  • 实现附属 DLL 加载机制的建议方法,此机制具有在选定语言不可用时可供替换的语言。

  • 检测任何 Windows 版本上的用户界面首选语言的代码。

  • 收到用户的更改请求后如何动态切换用户界面语言(未说明的事情是如何能够保持用户界面语言的用户选择)。

  • 如何使用一般字符编码映射函数,以便能够从相同的源代码生成 ANSI 版本和 Unicode 版本的应用程序。

安全说明:

提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。

获取示例和安装示例的说明:

  • 在 Visual Studio 的“帮助”菜单上,单击“示例”。

    有关更多信息,请参见定位示例文件

  • 示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。

  • 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。

生成并运行示例

生成并运行此示例

  1. 打开解决方案文件 satdll.sln。

  2. 从“生成”菜单中单击“生成解决方案”。

  3. 从“调试”菜单中单击“开始执行(不调试)”。

在默认配置中,此解决方案生成一个 Unicode 应用程序,该应用程序要求安装具有西欧语言和日语语言支持的 Windows 2000 或更高版本,以在用户界面中正确显示所有字符。

通过将常规项目设置中的“字符集”更改为“使用多字节字符集”,可以将此示例进行编译以用于早期的 Windows 平台。只能在那个 Windows 早期版本的 ANSI 代码页所支持的语言之间进行切换。

说明:

调试此示例时,当前目录是解决方案目录而不是调试目录。因此,附属 DLL(1031、1033 和 1041)的目录在解决方案目录中创建。向最终用户交付应用程序时,这些附属 DLL 目录当然应在主可执行文件所在的目录中创建。

关键字

此示例说明以下关键字:

LoadString;LoadMenu;LoadAccelerators;LoadIcon;LoadCursor;DialogBox;CreateFontIndirect;DrawText;InvalidateRect;UpdateWindow;DestroyMenu;SetMenu;DrawMenuBar;GetLocaleInfo;GetCurrentDirectory;FindFirstFile;FindNextFile;LoadLibrary;EnumResourceLanguages;GetVersionInfoEx;RegOpenKeyEx;RegQueryValueEx;RegCloseKey;GetUserDefaultUILanguage;GetUserDefaultLangID;_tWinMain;_tcscpy;_tcsncpy;_tcslen;_tcsclen;_tcscat;_ttoi;_itot

请参见

概念

MFC 应用程序中的本地化资源:附属 DLL

其他资源

国际示例

通用示例