如何创建 Direct2D 工厂

sam*_*sam 4 c++ directx factory direct2d

我正在创建一个 Direct2D 应用程序,API 概述页面显示第一步是创建一个工厂...我尝试使用此函数

D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &factory);
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

Error   62  error LNK2019: unresolved external symbol _D2D1CreateFactory@16 referenced in function "long __cdecl D2D1CreateFactory(enum D2D1_FACTORY_TYPE,struct _GUID const &,void * *)" (?D2D1CreateFactory@@YAJW4D2D1_FACTORY_TYPE@@ABU_GUID@@PAPAX@Z
Run Code Online (Sandbox Code Playgroud)

我从 WinMain 函数中调用 D2D1CreateFactory 函数。

这就是我初始化工厂指针的方式

ID2D1Factory *factory;
Run Code Online (Sandbox Code Playgroud)

这些是包含目录和库目录

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86
Run Code Online (Sandbox Code Playgroud)

我有使用 direct3D 的经验,所以我熟悉设备和渲染目标,但我的印象是对于 direct2D 工厂是第一位的,所以我没有创建任何设备、渲染目标等...

任何帮助表示赞赏。

Myk*_*ola 8

尝试将此指令添加到您的代码中。

#pragma comment(lib, "d2d1.lib")
Run Code Online (Sandbox Code Playgroud)

它将链接d2d1.lib到您的目标代码。您可以使用此指令链接到其他库。