Ich habe ein DirectDraw - Testprogramm geschrieben, habe beim Linken allerdings folgende Fehlermeldung(en):
Linker-Vorgang läuft…
DirectXDemo.obj : error LNK2005: „struct IDirectDraw * dd“ (?dd@@3PAUIDirectDraw@@A) bereits in DirectDrawSys.obj definiert
DirectXDemo.obj : error LNK2005: „struct IDirectDraw2 * dd2“ (?dd2@@3PAUIDirectDraw2@@A) bereits in DirectDrawSys.obj definiert
DirectXDemo.obj : error LNK2005: „struct _GUID * ddGuid“ (?ddGuid@@3PAU_GUID@@A) bereits in DirectDrawSys.obj definiert
DirectXDemo.obj : error LNK2005: „struct IDirectDrawSurface * ddPrimarySurface“ (?ddPrimarySurface@@3PAUIDirectDrawSurface@@A) bereits in DirectDrawSys.obj definiert
DirectXDemo.obj : error LNK2005: „struct IDirectDrawSurface * ddBackbuffer“ (?ddBackbuffer@@3PAUIDirectDrawSurface@@A) bereits in DirectDrawSys.obj definiert
Debug/DirectXDemo.exe : fatal error LNK1169: Ein oder mehrere mehrfach definierte Symbole gefunden
Fehler beim Ausführen von link.exe.
Die Variablen, die immer „bereits in DirectDrawSys.obj definiert“ wurden, werden in der DirectDrawSys.h definiert. Ich habe eine
#ifndef BLABLA_H
#define BLABLA_H
… definitionen …
#endif
anweisung eingebaut, also dürfte die Datei eigentlich nicht mehrfach eingebunden werden.
Ich habe auch in keiner anderen Datei versucht, diese Variablen neu zu definieren.
Meine cpp - Files binden immer zuerst die StdAfx.h ein, welche windows.h, Ddraw.h, Dinput.h sowie einige Standardlibraries einbindet.
Dann gegebenenfalls die resource.h und dann die DirectDrawSys.h
Weiss jemand, was ich da vielleicht noch falsch gemacht haben könnte?
Danke im Vorraus,
(verzweifelter) Reaper82