ошибка RC2176: старый DIB в res \ icon3.ico;передать через SDKPAINT? - PullRequest
4 голосов
/ 02 августа 2010

что это за ошибка и как ее устранить? Я использую Visual Studio 2005 для разработки смарт-устройств MFC, Обновление до 2008 года может решить мою проблему.

Ошибка 85: ошибка RC2176: старый DIB в res \ icon3.ico; передать его через SDKPAINT

Спасибо

Ответы [ 6 ]

6 голосов
/ 04 августа 2010

это может вам помочь: http://www.axialis.com/tutorials/vistaicons.html

Похоже, что иконки Vista теперь используют заголовки PNG.Ошибка немного ложная, хотя, поскольку это не старый DIB, а просто заголовок, который он не распознает, PNG.

Как был создан этот значок?Давным-давно в Visual C ++ 6.0 был свой собственный маленький способ создания пиктограмм .ico-файлов.Вероятно, не использовать PNG, так что это может быть путь, чтобы найти какую-то программу для эмуляции этого и создать значок, используя старый способ DIB.Или обновление до 2008:)

3 голосов
/ 06 декабря 2013

На самом деле есть другой способ, не упомянутый здесь в других ответах.

Если вы установите и интегрируете более поздний (с той же или более поздней датой выпуска, чем VS 2008) SDK с VS 2005, это также решает его,Вы также можете перейти к C:\Program Files\Microsoft Visual Studio 8\VC\bin (или эквиваленту пути) и заменить файлы rcdll.dll и rc.exe файлами более поздних версий VS, WDK или SDK.

Side-note: версия rcdll.dll и rc.exe должна совпадать , то есть вам нужно скопировать оба сразу из вашего источника (будь то VS, WDK или SDK).У меня работала любая версия начиная с 6.0 или 6.1.Это любая версия, начиная с компиляторов, которые сопровождали версии Vista SDK и VS или более поздние версии.

1 голос
/ 04 мая 2017

Сжатый / упакованный 256x256 был проблемой для меня.Как только я снял флажок сохранить в сжатом виде (для Vista) в своем приложении для редактирования значков, проблема исчезла.

1 голос
/ 06 июня 2014

У меня была эта проблема в VS2012, для которой я гуглил, но не нашел ничего другого, кроме этой ссылки на сайт MSDN, в которой говорилось об открытии его с помощью sdk-paint, поэтому в своем проекте я дважды щелкнул значок, отвечающий за ошибка и удалил формат PNG и вуаля программа запустилась.

Greetz

Richard

1 голос
/ 20 февраля 2013

На самом деле я столкнулся с двумя ситуациями, которые приводят к этой ошибке RC2176.
Как вы, вероятно, знаете, файл Windows .ICO может содержать несколько изображений для разных размеров и глубины цвета. VS2005 выдает эту ошибку как минимум в двух ситуациях (не связанных с DIB)

  1. .PNG изображения в значке (как описано в ответе Codejoy)
  2. 256x256 или больше изображений в значке

При использовании GIMP для уменьшения максимального размера изображения до 128x128 и исключения .PNG эта проблема решается с помощью VS2005. Или обновите VS до более новой версии;)

0 голосов
/ 13 июля 2015

Я столкнулся с другой ситуацией, которая вызвала ошибку, это поврежденный файл PNG. Я использовал команду sed, чтобы глобально заменить некоторые строки в папке проекта, и она просто заменила (выглядит как) строку окон, заканчивающуюся на UNIX, что привело к повреждению моих файлов изображений.

Итак, возможно, есть некоторые ошибки в анализаторе PNG библиотеки MFC, которые не могут обработать искаженные входные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...