Símbolo externo não resolvido
-
18-09-2020 - |
Pergunta
artigo principal existe um arquivo de cabeçalho e um arquivo fonte.Depois de copiar esses dois arquivos e adicionar alguns cabeçalhos:
#include <Windows.h>
#include <d2d1.h>
#pragma comment(lib, "d2d1")
#include <dwrite.h>
#include <d2d1helper.h>
#include "SafeRelease.h"
//Arquivo de liberação segura
template<class Interface>
inline void
SafeRelease(
Interface **ppInterfaceToRelease
)
{
if (*ppInterfaceToRelease != NULL)
{
(*ppInterfaceToRelease)->Release();
(*ppInterfaceToRelease) = NULL;
}
}
quando estou tentando compilar este projeto, estou recebendo um erro:
Erro 1 erro LNK2019:símbolo externo não resolvido __imp__DWriteCreateFactory@12 referenciado na função "private:longo __thiscall SimpleText::CreateDeviceIndependentResources(void)" (?CreateDeviceIndependentResources@SimpleText@@AAEJXZ)
Não tenho ideia do porquê.Todos?cabeçalhos estão incluídos.Esperamos que alguns de vocês possam ajudar com isso.
Obrigado.
Solução
Você precisa vincular ao Dwrite.lib, que inclui a implementação do DWriteCreateFactory
Ver aqui para documentação.A seção de requisitos na parte inferior explica o que você precisa incluir e vincular para usar a função à qual o erro se refere.
Você provavelmente poderia consertar isso adicionando a linha
#pragma comment(lib, "Dwrite")
Outras dicas
Depois de adicionar:
#pragma comment(lib, "dwrite")
esse código funciona.
Você deve mencionar Dwrite.lib na lista de bibliotecas a serem vinculadas à sua aplicação.