ошибка построения visual studio: неразрешенный внешний символ IID IWICImagingFactory (статический lib MFC)

Я написал порграмму с несколькими стандартными диалогами в проекте SDI (Doc/View enabled).

теперь, когда я хочу отправить его некоторым друзьям, я установил Use of MFC Use MFC in a static library.

но когда я пытаюсь построить решение, я получаю следующую ошибку:

ошибка LNK2001: неразрешенный внешний символ _IID_IWICImagingFactory

моя проблема в том, что я не знаю, что именно этот идентификатор интерфейса, потому что я не писал никакого кода для COM вручную или с использованием любых фабричных изображений или равных...

Im немного потерял atm...

может ли кто-нибудь сказать мне, как решить эту проблему и заставить ее работать со статическим использованием MFC?

спасибо заранее!

3 ответов


IWICImagingFactory определяется в wincodec.idl

  • найти и добавить wincodec.idl к вашему проекту MFC
  • перестроить и MIDL компилятор будет генерировать wincodec_i.с и wincodec_i.ч
  • wincodec_i.* файлы содержат объявление и определение _IID_IWICImagingFactory

также .Либ!-Файл -2-->:

C:\Program файлы\Microsoft SDKs\Windows\v7.0A \ Lib\ windowscodecs.Либ!--2-->


Это была не моя точная проблема (разные .idl), но та же ошибка компоновщика. Гугл все равно нашел ваш вопрос. Я скопировал .idl-файл в новый каталог, запустил командную строку VS и запустил следующее:

midl thefile.idl

после того, как это сделал мой .C-файл, я просто скопировал const для IID, который мне нужен, и выбросил остальное.