这是什么错误,如何解决?我正在使用 Visual Studio 2005 进行智能设备 MFC 开发,升级到 2008 可以解决我的问题。
错误 85 错误 RC2176:res\icon3.ico 中的旧 DIB;通过 SDKPAINT 传递它
谢谢
这是什么错误,如何解决?我正在使用 Visual Studio 2005 进行智能设备 MFC 开发,升级到 2008 可以解决我的问题。
错误 85 错误 RC2176:res\icon3.ico 中的旧 DIB;通过 SDKPAINT 传递它
谢谢
这可能会帮助你: http ://www.axisis.com/tutorials/vistaicons.html
看起来 vista 图标现在使用 PNG 标头。虽然它不是旧的 DIB,但它只是一个它无法识别的标头,PNG,但该错误有点错误。
该图标是如何创建的?很久以前,Visual C++ 6.0 有自己的小方法来创建图标 .ico 文件。可能不使用PNG所以这可能是要走的路是找到一些程序来模拟它并使用旧的DIB方式创建一个图标。或升级到 2008 :)
实际上,其他答案中没有提到另一种方法。
如果您要安装更新的(与 VS 2008 相同或更晚的发布日期)SDK 并将其与 VS 2005 集成,那么也可以解决它。您还可以转到C:\Program Files\Microsoft Visual Studio 8\VC\bin
(或您的等效路径)并将文件替换为更新的 VS、WDK 或 SDK 中rcdll.dll
的文件。rc.exe
旁注:rcdll.dll
和rc.exe
必须匹配的版本,即您需要从源代码(无论是 VS、WDK 还是 SDK)一次复制两者。对我来说,任何以 6.0 或 6.1 开头的版本都可以。这是从伴随 Vista SDK 和 VS 版本或更高版本的编译器开始的任何版本。
我在 VS2012 中遇到了这个问题,我用谷歌搜索了这个问题,但除了这个指向 MSDN 网站的链接之外没有找到任何其他东西,该网站谈到了用 sdk-paint 打开它,所以在我的项目中,我双击了导致错误的图标和删除了 PNG 格式,瞧,程序启动了。
格雷茨
理查德
实际上,我遇到了两种导致此错误 RC2176 的情况。
您可能知道,Windows .ICO 文件可以包含不同大小和颜色深度的多个图像。VS2005至少在两种情况下会抛出这个错误(与DIB无关)
通过使用 GIMP 将最大图像尺寸缩小到 128x128,并避免使用 .PNG,VS2005 解决了该问题。或者,升级到更新的 VS ;)
压缩/打包的 256x256 对我来说是个问题。在我的图标编辑器应用程序中取消选中保存为压缩(对于 Vista)的选项后,问题就消失了。
我遇到了另一种触发错误的情况,即 PNG 文件损坏。我已经使用该sed
命令全局替换项目文件夹中的一些字符串,它只是替换了(看起来很喜欢)以 UNIX 结尾的 windows 行,这导致我的图像文件损坏。
因此,MFC 库的 PNG 解析器中可能存在一些错误,无法处理格式错误的输入文件。
我遇到的最佳分辨率来自 Axialis,他们提供了以未压缩的 PNG 格式保存 ICO 文件的指导。 https://www.axisis.com/docs/iw/How_to_use_a_Windows_Vista_Compressed_Icon_in_a_Software_Project.htm