Нерешенный внешний символ - PullRequest
4 голосов
/ 21 июля 2010

Основная статья есть заголовочный файл и исходный файл .После копирования этих двух файлов и добавления нескольких заголовков:

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

// Безопасный файл выпуска

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

        (*ppInterfaceToRelease) = NULL;
    }
}

, когда я пытаюсь скомпилировать этот проект, я получаю ошибку:

Ошибка 1 ошибка LNK2019: неразрешенный внешний символ __imp__DWriteCreateFactory @ 12, указанный в функции «private: long __thiscall SimpleText :: CreateDeviceIndependentResources (void)» (? CreateDeviceIndependentResources @ SimpleText @ 1016 **) ** Понятия не имею, почему.Все?Заголовки включены.Надеюсь, что некоторые из вас смогут помочь с этим.
Спасибо.

Ответы [ 3 ]

16 голосов
/ 21 июля 2010

Вам нужно сделать ссылку на Dwrite.lib, который включает реализацию DWriteCreateFactory

См. здесь для документации. В разделе «Требования» внизу объясняется, что вам нужно включить, и укажите ссылку, чтобы использовать функцию, к которой относится ошибка.

Возможно, это можно исправить, добавив строку

#pragma comment(lib, "Dwrite")
1 голос
/ 21 июля 2010

Вы должны упомянуть Dwrite.lib в списке библиотек, которые будут связаны с вашим приложением.

1 голос
/ 21 июля 2010

После добавления:

#pragma comment(lib, "dwrite")

этот код работает.

...