WICConvertBitmapSource() выдает ошибку ссылки

Я пытался закодировать изображение с помощью WIC. и я сделал простую dll (для кодирования/декодирования) и использовал ее из другого приложения.

Я добавил my_bitmap_converter(), чтобы выполнить преобразование, предназначенное для использования WICConvertBitmapSource(), но это дает мне ошибку ссылки. вот моя работа

int my_bitmap_converter
(
    REFWICPixelFormatGUID dstPixelFormt, 
    IWICBitmapSource* piBitmapSource, 
    IWICBitmapSource** ppiBitmapDst
)
{
    IWICBitmapSource* piScr = piBitmapSource;
    IWICBitmapSource** ppiDst = ppiBitmapDst;

    hr = WICConvertBitmapSource
        (
        dstPixelFormt,//GUID_WICPixelFormat128bppPRGBAFloat, 
        piScr,
        ppiDst
        );
    if (SUCCEEDED(hr))
    {
        piScr->Release();
        return 0;
    }
    return -1;
}

как я могу избавиться от этой ошибки

Ошибка 1 ошибка LNK2019: неразрешенный внешний символ _WICConvertBitmapSource@12, на который ссылается функция «int __cdecl my_bitmap_converter(struct _GUID const &,struct IWICBitmapSource *,struct IWICBitmapSource * *)» (?my_bitmap_converter@@YAHABU_GUID@@PAUIWICBitmapSource@@PAPAU2@@@Z)

---wincodec.h---

HRESULT WINAPI WICConvertBitmapSource(
     _In_ REFWICPixelFormatGUID dstFormat, // Destination pixel format
     _In_reads_(1) IWICBitmapSource  *pISrc,    // Source bitmap
     _Outptr_result_buffer_(1) IWICBitmapSource **ppIDst   // Destination bitmap, a copy or addrefed source
     );

person wicky    schedule 13.03.2015    source источник


Ответы (1)


если вы ссылались здесь , вы можете заметить, что «Имя библиотеки ссылок — «windowscodecs.lib» вместо «wincodec.lib» в Windows SDK 7.0».

возможно, вы используете SDK 7.0 или более позднюю версию. если это так, попробуйте добавить windowscodecs.lib в качестве дополнительных зависимостей.

person mhs    schedule 13.03.2015
comment
какую версию вы использовали. - person mhs; 13.03.2015
comment
Я установил несколько версий (от 6 до 8), но, согласно regedit, текущая версия 6. но я все равно включил windowscodecs.lib. которые останавливают ошибку, когда я вызываю эту функцию в другой функции, выше ошибка снова возникает. - person wicky; 13.03.2015