IconEx.GetIcon(0)不适用于某些EXE文件

时间:2012-08-26 06:48:41

标签: .net c#-4.0 icons

我正在深入研究我的项目,现在我有点陷入困境 我有一组连接的功能,其中一个是从图标中获取位图 我正在使用TKageyu.Utils

中的IconEx.GetIcon(0);函数

我在应用程序的文件夹中有2个EXTERNAL EXE文件:一个用于32位,一个用于64位。
通常它应该从64位读取图标 当32Bit丢失时 - 它应该从64Bit读取图标 当64Bit丢失时 - 它应该从32Bit读取图标。 - 这就是问题所在!

它发送一个异常,并在编辑器中指示我这部分代码:

StringBuilder buf = new StringBuilder(MAX_PATH);
int len = GetModuleFileName(this._hModule, buf, buf.Capacity + 1);
if (len != 0)
{
    this._filename = buf.ToString();
}
else
{
    switch (Marshal.GetLastWin32Error())
    {
        case ERROR_SUCCESS:
            this._filename = filename;
            break;
        default:
            throw new Win32Exception();
    }
}

但是当它从64Bit文件中读取时,它不会这样做。

已经检查过:

  • 文件名正确
  • 图标索引似乎是正确的(使用MiTeC Icon Explorer 4.2检查)
  • 32Bit文件确实存在...(当没有64Bit文件进行测试时...)

0 个答案:

没有答案