Подтвердить что ты не робот

Ошибка визуальной студийной сборки: неразрешенный внешний символ _IID_IWICImagingFactory (статическая библиотека MFC)

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

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

  • Найдите и добавьте wincodec.idl в проект MFC
  • Компилятор Rebuild и MIDL будет генерировать wincodec_i.c и wincodec_i.h
  • wincodec_i. * файлы содержат декларацию и определение _IID_IWICImagingFactory

Ответ 2

Существует также файл .lib:

C:\Program Files\Microsoft SDK\Windows\v7.0A\Lib\ windowscodecs.lib

Ответ 3

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

midl thefile.idl

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