2014-12-04 4 views
3

Я разрабатываю чертеж Windows Runtime Component (Visual C++), который будет использоваться в проекте Windows Store App C#.Как решить «ошибка LNK2001: неразрешенный внешний символ _CLSID_D2D1Blend» при использовании эффектов Direct2d?

Все работает как ожидалось, пока я не начал добавлять некоторые возможности эффектов в lib.

При попытке создать такой эффект, как ниже: показана

m_d2dContext->CreateEffect(CLSID_D2D1Blend, &m_blendEffect) 

следующая ошибки:

1>MyLibFile.obj : error LNK2001: unresolved external symbol _CLSID_D2D1Blend 

У меня уже есть этот Pragma комментарий на моем pch.h:

#pragma comment(lib, "d3d11") 
    #pragma comment(lib, "d2d1") 

Я подозреваю, что некоторые определения отсутствуют, но я не знаю, что в качестве #pragma comment(lib, "d2d1") уже был добавлен в pch.h.

Я запускаю Windows 10 Technical Preview build 9860 и VS Express 2013 update 3 на виртуальной машине - VM-Ware.

Это пример проекта с использованием эффектов и прямой 2d: Direct2D-Image-Effects

ответ

4

Как она стоит в MSDN - Blend Effect: Library - d2d1.lib, dxguid.lib

Вы пропускаете dxguid.lib

Кроме того, вы можете использовать исходный код GUID: {81C5B77B-13F8-4CDD-AD20-C890547AC65D}

+2

Никогда не меняйте жесткие коды, они меняются. Ссылка на dxguid.lib достаточно. –

+0

Спасибо! Я новичок в разработке приложений для Windows, и я не очень хорошо знаком с документами. Но это была моя ошибка в том, чтобы внимательно прочитать всю страницу документа, особенно раздел «Требования/библиотека». Живя и учась. –