Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

TheTribalK

unregistriert

1

02.03.2010, 17:50

Problem error LNK2019: unresolved external symbol in DirectX

Probiere mich grade zum ersten mal am Direct X SDK
im VS2010 (auch bei der C++ Express 2008 gabs dieses Prob).

Nun ist das Problem, dass beim erzeugen einer ID2D1Factory
volgender Linkerfehler ausgespuckt wird.

Zitat

1>Main.obj : error LNK2019: unresolved external symbol _D2D1CreateFactory@16 referenced in function "long __cdecl D2D1CreateFactory(enum D2D1_FACTORY_TYPE,struct _GUID const &,void * *)" (?D2D1CreateFactory@@YAJW4D2D1_FACTORY_TYPE@@ABU_GUID@@PAPAX@Z)
1>C:\Users\Kamil\Documents\Visual Studio 2010\Projects\D2DTest\Debug\D2DTest.exe : fatal error LNK1120: 1 unresolved externals


Könnte mir bitte jemand sagen was am folgenden winzigen Codeblock nicht stimmt?

Danke schonma im Voraus. :?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<Windows.h>
#include<D2D1.h>
#include<D2D1Helper.h>

int WINAPI WinMain(
    HINSTANCE,
    HINSTANCE,
    LPSTR,
    int)
{
    ID2D1Factory *pFactory;
    HRESULT hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pFactory);
    return 0;
};

2

02.03.2010, 17:51

Hast du die lib auch gelinkt? Sieht nach Linkerfehler aus.

TheTribalK

unregistriert

3

02.03.2010, 17:54

Denke Schon

Hmm.
Meinst du unter C++ Directories den Ordner mit den Libs hinzufügen?
Das habich getan.
Einmal habe ich sogar aus verzweiflung Alle Ordner der SDK eingefügt aber nix....

4

02.03.2010, 17:56

Nein ich meine Linker zusätzliche Abhängigkeiten

TheTribalK

unregistriert

5

02.03.2010, 18:26

hmmm

Nein dann wohl nicht.

Könntest du beschreiben wie genau das geht oder wo ich das nachlesen kann?

6

02.03.2010, 18:34

Unter Projekteigenschaften findest du die Einstellung "Linker" dort ist eine Eigenschaft "Zusätzliche Abhängigkeiten" (Input->Additional Dependencies). Dort solltest du die ".lib" die du benutzen möchtest eintragen also z.b. d3d9.lib etc. Aber es kann trotzdem sein, dass du unter VC++ Directories die falschen Pfade angegben hast. Das solltest du erneut prüfen, da der Pfad für Lib -> Lib/x86 oder Lib/x64 ist, je nach Anwendungsfall.

Du brauchst Lib, Include, ggf. Bin.


EDIT:
Projekteinstellungen sagt nur, wo er suchen soll. (Ordner)
Linker sagt in welcher Datei er suchen soll. (Datei)

Du möchtest D2D1.h nutzen, also musst du vermutlich D2D1.lib linken!

TheTribalK

unregistriert

7

02.03.2010, 18:51

Ennnnnndlichhhhhhh

Supperrrrrr.
Danke hat jezt endlich geklapt.
Dann kanns ja endlich weitergehen^^

Also von selbst wäre ich da wirklich nie drauf gekommen.
Ich hab immer nur mit den Directories rumgespielt.

Danke für die schnelle hilfe :!:

TOP :D

Werbeanzeige