views:

35

answers:

3

Guys in this 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.

+5  A: 

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")
John Sibly
+1 for your answer.
There is nothing we can do
A: 

After adding:

#pragma comment(lib, "dwrite")

this code works.

There is nothing we can do
+1  A: 

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

Cătălin Pitiș