【发布时间】:2012-06-20 02:02:32
【问题描述】:
我有一个项目,其中包含一些图标、位图和字符串,这些图标、位图和字符串嵌入到用于 MUI 的资源 DLL 中。这些都在 Windows 7 中工作得很好,但只有字符串和位图在 XP 中工作。我正在使用 VS2012 在 Windows 7 上构建应用程序,使用 Visual Studio 2010 (v100) 作为实际工具集。
由于 XP 本身不支持 MUI,因此我根据this article on MSDN 的步骤 5.1c 和 5.2 以编程方式获取相应资源 DLL 的句柄。
我在 XP 上为我的资源中的图标尝试 LoadImage 后,GetLastError 的结果是 1813,或 ERROR_RESOURCE_TYPE_NOT_FOUND。在同一资源句柄上为位图或 LoadString 调用 LoadImage 可以正常工作,实际上,我的字符串和位图会出现在适当的位置。
我注意到:如果我尝试通过打开应用程序的 DLL 来设置快捷方式的图标,Windows 7 没有问题,但 Windows XP 报告该文件不包含图标。如果我将它们复制过来,XP 自己加载 ico 文件没有问题,所以我不认为它们的格式不好,除非资源编译器以某种方式破坏它们。如果我查看资源编辑器中的图标,它应该显示为 16x16 32 位 BMP 文件。
【问题讨论】:
标签: winapi windows-xp embedded-resource