2017-02-14 17 views
0

Я хотел переместить код, который я написал на своем ноутбуке, на другой компьютер. Я не использовал 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, но даже после этого я все еще получаю ошибку?

Итак, кто-нибудь знает, почему я получаю ошибку и как ее исправить?

+0

открыть ваш 'd2d1.lib' в любом режиме просмотра (даже в блокноте) и точно искать' _D2D1CreateFactory @ 16' (или для '__imp__D2D1CreateFactory @ 16') - подумайте, что вы не нашли эту строку (linker can not нашел это) это означает, что у вас есть старая версия 'd2d1.lib', поэтому вам нужно скачать и установить последнюю версию SDK – RbMm

+0

Спасибо, но я только что проверил мою версию DirectX, и он сказал, что у меня есть DirectX 11, поэтому я не думаю, что это так: ( – stav

+0

получается из-за того, что визуальная студия не связывается с файлом d2d1.lib, хотя я вошел в настройки и добавил его в дополнительные файлы библиотеки. – stav

ответ

0

Хорошо, после прибегая к помощи вокруг, в течение часа или двух, я узнал, что в основном это добавление:

#pragma comment(lib,"d2d1.lib") 

бы исправить мою проблему.

Но я понятия не имею, почему, поскольку я уже вошел в настройки компоновщика и добавил d2d1.lib в дополнительные файлы библиотеки?

EDIT: OMG Я только что понял. Я добавил библиотеку к настройкам сборки x64, а не к x86. -_-