Brauche Support bei Link-Fehler (V C++ IDE)
-
Guten Abend Zusammen,
ich bin neu hier im Forum und begrüße erstmal alle hier in der Runde :).
Ich hatte das letzte Mal vor zwei Jahren C++ programmiert und in der Zwischenzeit ist einiges wieder in Vergessenheit geraten.
Ich saß das gesamte Wochenende nun an einem kleinen Projekt - Problem was ich seit heute habe sind die Verknüpfungs-Fehler.Ich nutze als IDE die Visual C++ Express Studio Variante.
Ich bekomme folgende (ein Ausschnitt) Fehlermeldungen:
D3DX.obj : error LNK2020: Nicht aufgelöstes Token (0A00000E) "struct _D3DVECTOR vecScalingDummy" (?vecScalingDummy@@$$Q3U_D3DVECTOR@@A).
D3DX.obj : error LNK2020: Nicht aufgelöstes Token (0A000010) "struct IDirect3DDevice8 * gD3DDevice8" (?gD3DDevice8@@$$Q3PAUIDirect3DDevice8@@A).
Ich weiß nicht was ich machen soll, noch wie ich den Fehler einzuordnen habe.
Bei Anfragen würde ich den Source-Code senden bzw das gesamte Projekt.Danke für Eure Hilfe.
Freundliche Grüße,
Timothy :p
-
Du musst dem Linker noch die entsprechenden Libs eintragen.
Versuchst Du mit DirectX zu arbeiten oder aus welcher Lib stammt der _D3DVECTOR?Simon
-
Guten Morgen,
ja genau, ich arbeite mit dem DirectX SDK. Eben dieses habe ich aber unter Einstellungen mit den librarys verknüpft. Verstehe daher den Fehler nicht. Ja der D3DVector ist eine struct aus der DirectX Umgebung.
Wie soll ich vorgehen?
Danke.
Freundliche Grüße,
Timothy
-
Timothy schrieb:
ja genau, ich arbeite mit dem DirectX SDK. Eben dieses habe ich aber unter Einstellungen mit den librarys verknüpft.
Scheinbar aber nicht richtig, tut mir leid, ich kenne die DirectX Bibliothek nicht um dir zu sagen welche Bibliotheken fehlen, aber dein Linker gibt dir bekannt das er die entsprechenden Token nicht findet (Da es erst der Linker anmeckert gehe ich davon aus das du zwar die Header, nicht aber die lib richtig eingebunden hast).
cu André
-
Guten Morgen Andrè,
wie meinst Du das genau mit "lib richtig eingebunden"? Über die Optionen habe ich den korrekten Pfad der Libs angegeben oder muss ich noch explizit im Source-Code die Libs einbinden? Hättest Du ggf. ein Beispiel?
Ciao Tim

-
Hier mal ein Ausschnitt der ersten Klasse:
#include "Clock3D.h"
#include <windows.h>
#include <d3d8.h>class D3DX
{
public:
D3DX(void);
virtual ~D3DX(void);private:
LPDIRECT3D8 gD3D8 = NULL;
LPDIRECT3DDEVICE8 gD3DDevice8 = NULL;public:
HRESULT initDX(HWND window_hwnd);
void killDX(void);
};nun bekomme ich aber den "error LNK2028: Nicht aufgelöstes Token ""extern "C" int__stdcall getWindowRect(struct HWND__ *,struct tagRECT
...verwiesen wird"Was soll ich machen? Habe schon "fast" überall nach dem Felher gesucht.
Danke.
Freundliche Grüße,
Timothy
-
Timothy schrieb:
wie meinst Du das genau mit "lib richtig eingebunden"? Über die Optionen habe ich den korrekten Pfad der Libs angegeben oder muss ich noch explizit im Source-Code die Libs einbinden? Hättest Du ggf. ein Beispiel?
Ich muss gestehen das ich unter dem VS noch nie mit statischen Bibliotheken (sondern nur mit später Bindung und DLL) gearbeitet habe. Daher werde ich dir auf Anhieb nicht helfen können. Ich gehe aber mal davon aus das man bei den Projekteinstellungen unter dem Punkt Linker die Bibliotheken angeben kann (Pass aber bitte auf was du im Release und was du im Debug angibst, häufig werden hierbei unterschiedliche Bibliotheken stehen).
cu André
-
Timothy schrieb:
wie meinst Du das genau mit "lib richtig eingebunden"? Über die Optionen habe ich den korrekten Pfad der Libs angegeben oder muss ich noch explizit im Source-Code die Libs einbinden?
Nein, falls du wirklich alle benötigten Bibliotheken in den Projekt-Eigenschaften (in Release- und Debug-Konfiguration) angibst, sollte es gehen. Das scheinst du aber nicht getan zu haben. Aber in der DirectX-Dokumentation sollte sicher beschrieben werden, welche Bibliotheken du wie zu linken hast.
P.S. Nächstes Mal [cpp]-Tags benutzen.