【问题标题】:Can I set/change default index of an icon in an exe?我可以在 exe 中设置/更改图标的默认索引吗?
【发布时间】:2012-01-18 13:51:00
【问题描述】:

我的 exe(一个 MFC 应用程序)包含几个图标。我可以通过 IconExplorer 应用程序查看它们及其索引。当我在 Windows 7 和 XP 下构建相同的项目时,我注意到图标的索引发生了变化(尽管两者都是 Visual Studio 2010)。这是一个问题,因为我在安装过程中参考了图标索引来注册/设置它们。

有没有一种方法可以控制哪个图标可以设置在索引 0 以及哪个图标可以设置在索引 1 等等?

我不知道为什么索引从 Windows 7 构建和 XP 构建发生变化,它们都来自同一个源代码副本。如果我们不能分配索引,那会不会因为我们不能可靠地使用它们而使它们变得有些多余?

【问题讨论】:

    标签: windows mfc icons executable


    【解决方案1】:

    确保将具有最低 ID 值的图标放在 RC 文件的最前面。这可确保图标索引在所有系统上保持一致。因此,按 ID 对它们进行排序。

    此外,请确保 ID 值大于 128,因为这通常是主图标的值(您希望它位于索引 0 处)。

    更新:不确定这一点,但也许语言环境会干扰?例如。你的任何图标是非中性资源吗?

    【讨论】:

    • 不确定非中性是什么意思,但与任何其他应用程序一样,我的 exe 文件很少有 .ico 文件。我认为这与你指出的资源 ID 有关,但它们在两个版本中基本相同。
    • 你可以在VisualStudio中打开你的exe,并使用那里的资源编辑器直接查看编译后的资源。据我所知,最低的 ID 总是首先放在文件中,然后是下一个最低的 ID,依此类推...
    • 我会假设资源 ID 是相同的。但是,它们必须按升序排列。否则,索引可能会在 一些 系统上失败。
    • 你是对的,我的错。两个文件中存在一个文件差异,即资源 ID。这解决了它。
    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多