MFC 里面DWriteCreateFactory函数出现LINK2019错误无法解析外部符号怎么回事,求解决?

SUN 20 信誉分
2024-09-10T07:29:31.26+00:00

屏幕截图 2024-09-10 152840

HRESULT CMainWindow::CreateDeviceIndependentResources()

{

static const WCHAR msc_fontName[] = L"Verdana";

static const FLOAT msc_fontSize = 50;

HRESULT hr;

ID2D1GeometrySink *pSink = NULL;

// Create a Direct2D factory.

hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &m_pD2DFactory);

if (SUCCEEDED(hr))

{

    // Create WIC factory.

    hr = CoCreateInstance(

        CLSID_WICImagingFactory,

        NULL,

        CLSCTX_INPROC_SERVER,

        IID_IWICImagingFactory,

        reinterpret_cast<void **>(&m_pWICFactory)

        );

}

if (SUCCEEDED(hr))

{

    // Create a DirectWrite factory.

    hr = DWriteCreateFactory(

        DWRITE_FACTORY_TYPE_SHARED,

        __uuidof(m_pDWriteFactory),

        reinterpret_cast<IUnknown **>(&m_pDWriteFactory)

        );

}
C++
C++
一种通用的高级编程语言,作为 C 编程语言的扩展而创建,除了用于低级别内存操作的功能外,还具有面向对象、泛型和功能性等特点。
146 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
    2024-09-17T08:04:24.8966667+00:00

    你好, LINK2019 错误通常表示链接器找不到函数或符号的实现。对于 DWriteCreateFactory 函数,这通常意味着项目中未正确链接必要的库文件。

    1.确保 DirectWrite 和 Direct2D 库已链接。

    2.检查库路径:确保在项目中正确设置了 DirectWrite 和 Direct2D 库的路径。

    配置属性 > VC++ 目录 > 库目录。

    3.验证 DirectX SDK 安装:确保 DirectX SDK(或 Windows SDK)已正确安装,并且其包含和库目录已在项目设置中正确引用。

    4.包含必需的标头:确保已在代码中包含 DirectWrite 和 Direct2D 所需的标头:

    #include <d2d1.h>

    #include <dwrite.h>

    5.检查函数声明:验证代码中的函数声明和用法是否与 DirectWrite 和 Direct2D API 中的一致。

    你也可以尝试查看文档 :链接器工具错误 LNK2019


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。


你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。