Unresolved external symbol

别来无恙 提交于 2020-01-03 17:36:51

问题


Main article there is a header file and a source file. After copying those two files and adding few headers:

#include <Windows.h>
#include <d2d1.h>
#pragma comment(lib, "d2d1")
#include <dwrite.h>
#include <d2d1helper.h>
#include "SafeRelease.h"

//Safe realease file

template<class Interface>
inline void
SafeRelease(
    Interface **ppInterfaceToRelease
    )
{
    if (*ppInterfaceToRelease != NULL)
    {
        (*ppInterfaceToRelease)->Release();

        (*ppInterfaceToRelease) = NULL;
    }
}

when I'm trying to compile this project I'm getting an error:

Error 1 error LNK2019: unresolved external symbol __imp__DWriteCreateFactory@12 referenced in function "private: long __thiscall SimpleText::CreateDeviceIndependentResources(void)" (?CreateDeviceIndependentResources@SimpleText@@AAEJXZ)

Have no idea why. All? headers are included. Hopefuly some of you will be able to help with this.
Thank you.


回答1:


You need to link to Dwrite.lib, which includes the implementation of DWriteCreateFactory

See here for documentation. Requirements section at the bottom explains what you need to include and link to to use the function that the error refers to.

You could probably fix this by adding the line

#pragma comment(lib, "Dwrite")



回答2:


After adding:

#pragma comment(lib, "dwrite")

this code works.




回答3:


You have to mention Dwrite.lib in the list of libraries to be linked to your application.



来源:https://stackoverflow.com/questions/3297920/unresolved-external-symbol

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!