【问题标题】:How to solve "error LNK2001: unresolved external symbol _CLSID_D2D1Blend" when using Direct2d Effects?使用 Direct2d 效果时如何解决“错误 LNK2001:无法解析的外部符号 _CLSID_D2D1Blend”?
【发布时间】:2014-12-05 21:41:35
【问题描述】:

我正在开发一个 Windows 运行时组件 (Visual C++) 绘图库,用于 Windows Store App C# 项目。

在我开始向库中添加一些效果功能之前,一切都按预期运行。

尝试创建如下效果时:

    m_d2dContext->CreateEffect(CLSID_D2D1Blend, &m_blendEffect)

显示以下错误:

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

我的pch.h 上已经有这些编译指示:

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

我怀疑缺少某些定义,但我不知道 #pragma comment(lib, "d2d1") 已添加到 pch.h 中。

我正在虚拟机 - VM-Ware 上运行 Windows 10 Technical Preview build 9860 和 VS Express 2013 update 3。

这是一个使用效果和直接 2d 的示例项目:Direct2D-Image-Effects

【问题讨论】:

    标签: c# c++ windows-store-apps direct2d


    【解决方案1】:

    正如它在MSDN - Blend Effect中所代表的那样:Library - d2d1.lib, dxguid.lib

    你错过了dxguid.lib

    另外,您可以使用原始 GUID:{81C5B77B-13F8-4CDD-AD20-C890547AC65D}

    【讨论】:

    • 永远不要硬编码 guid,它们会改变。链接到 dxguid.lib 就足够了。
    • 谢谢!我是 Windows 应用程序开发的新手,我对文档并不十分熟悉。但仔细阅读完整的文档页面是我的错,尤其是需求/库部分。生活和学习。
    猜你喜欢
    • 2011-05-06
    • 1970-01-01
    • 2011-09-29
    • 2013-09-11
    • 2011-03-21
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多