Ошибка визуальной студийной сборки: неразрешенный внешний символ _IID_IWICImagingFactory (статическая библиотека MFC)
Я написал программу с несколькими стандартными диалогами в проекте SDI (Doc/View enabled).
Теперь, когда я хочу отправить его некоторым друзьям, я установил Use of MFC
Use MFC in a static library
.
Но когда я пытаюсь построить решение, я получаю следующую ошибку:
ошибка LNK2001: неразрешенный внешний символ _IID_IWICImagingFactory
Моя проблема в том, что я не знаю, что именно представляет собой этот идентификатор интерфейса, потому что я не писал никакого кода для COM вручную или с помощью любого изображения factory вещей или равных...
Немного потерял atm...
Может кто-нибудь сказать мне, как решить эту проблему и заставить ее работать со статическим использованием MFC?
Спасибо заранее!
Ответы
Ответ 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, который мне нужен, и отбросил остальных.