Я хотел переместить код, который я написал на своем ноутбуке, на другой компьютер. Я не использовал Github или какой-либо другой тип управления версиями, я просто скопировал файлы C++ на USB-накопитель и поместил их на другой компьютер.C++ Direct2D - Ошибка компоновщика 2019 после перемещения файлов синуса с моего ноутбука
А теперь я получаю ошибку, по какой-то причине, когда пытаюсь запустить код?
Код - это просто класс, который использует direct2d для рисования на окне.
Это то, что он выглядит следующим образом:
#pragma once
#include <Windows.h>
#include <d2d1.h>
#include <iostream>
#include "LinkedList.h"
class Graphics
{
private:
ID2D1Factory* pFactory;
ID2D1HwndRenderTarget* pRenderTarget;
ID2D1SolidColorBrush* pBrush;
RECT bounds;
float lineWidth = 5.0f;
LinkedList pointList;
public:
Graphics();
~Graphics();
void BeginDraw() { pRenderTarget->BeginDraw(); };
void EndDraw() { pRenderTarget->EndDraw(); };
void SetBrushColor(float r, float g, float b, float a);
void SetBrushColor(float r, float g, float b);
void SetLineWidth(float width);
RECT GetBounds();
void ClearScreen(float r, float g, float b, float a);
void ClearScreen(float r, float g, float b);
void FillCircle(float x, float y, float radius);
void DrawCircle(float x, float y, float radius);
void FillRect(float x, float y, float w, float h);
void DrawRect(float x, float y, float w, float h);
void MoveTo(float x, float y);
void LineTo(float x, float y);
void tester();
bool Init(HWND* pWindowHandle);
};
И ошибки я получаю это:
Error LNK2019 unresolved external symbol [email protected] referenced in function "long __cdecl D2D1CreateFactory(enum D2D1_FACTORY_TYPE,struct _GUID const &,void * *)" ([email protected]@[email protected]@[email protected]@[email protected]) ffff c:\Users\sharkgaming\documents\visual studio 2015\Projects\ffff\ffff\Graphics.obj 1
Сначала я думал, что это было потому, что я забыл ссылку на d2d1. lib, но даже после этого я все еще получаю ошибку?
Итак, кто-нибудь знает, почему я получаю ошибку и как ее исправить?
открыть ваш 'd2d1.lib' в любом режиме просмотра (даже в блокноте) и точно искать' _D2D1CreateFactory @ 16' (или для '__imp__D2D1CreateFactory @ 16') - подумайте, что вы не нашли эту строку (linker can not нашел это) это означает, что у вас есть старая версия 'd2d1.lib', поэтому вам нужно скачать и установить последнюю версию SDK – RbMm
Спасибо, но я только что проверил мою версию DirectX, и он сказал, что у меня есть DirectX 11, поэтому я не думаю, что это так: ( – stav
получается из-за того, что визуальная студия не связывается с файлом d2d1.lib, хотя я вошел в настройки и добавил его в дополнительные файлы библиотеки. – stav