PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum hab ich diese Linker fehler


TheGamer
2003-08-24, 17:51:49
Hallo,

ich habe folgenden code unter VC++


class BENTGINE_API DirectSound
{
private:
//variables
static BOOL m_bInitialized; //Initialized
static LPDIRECTSOUND8 m_pDSound; //IDirectSound8 interface
static LPDIRECTSOUNDBUFFER m_pPrimaryBuffer; //Primary Soundbuffer
static LPDIRECTSOUND3DLISTENER8 m_pListener; //Listener interface
static mathVector3 m_vOldListenerPos; //Time stamper of the SetListener methode

public:
//methods
static Engine_Result Init(Config* pConfig, HWND hWindow=NULL,
DWORD dwCoopLevel=DSSCL_PRIORITY, BOOL b3D=TRUE);
static Engine_Result Exit();
static Engine_Result SetListener(const mathVector3& vListenerPos, const mathVector3& yListenerYAxis,
mathVector3& vListenerZAxis, const float fSpeedFactor=1.0f);

//inline methods
static inline BOOL IsInitialized() {return m_bInitialized;}
static inline LPDIRECTSOUND8 GetDSound() {return m_pDSound;}
static inline LPDIRECTSOUNDBUFFER GetPrimaryBuffer() {return m_pPrimaryBuffer;}
static inline LPDIRECTSOUND3DLISTENER8 GetListener() {return m_pListener;}
static inline mathVector3 GetOldListenerPosition() {return m_vOldListenerPos;}
};





und erhalte folgende Fehlermeldungen

DirectSound.obj : error LNK2001: unresolved external symbol "private: static int DirectSound::m_bInitialized" (?m_bInitialized@DirectSound@@0HA)
Config.obj : error LNK2001: unresolved external symbol "private: static int DirectSound::m_bInitialized" (?m_bInitialized@DirectSound@@0HA)
bentgine.obj : error LNK2001: unresolved external symbol "private: static int DirectSound::m_bInitialized" (?m_bInitialized@DirectSound@@0HA)
logbook.obj : error LNK2001: unresolved external symbol "private: static int DirectSound::m_bInitialized" (?m_bInitialized@DirectSound@@0HA)
utils.obj : error LNK2001: unresolved external symbol "private: static int DirectSound::m_bInitialized" (?m_bInitialized@DirectSound@@0HA)
Matrix.obj : error LNK2001: unresolved external symbol "private: static int DirectSound::m_bInitialized" (?m_bInitialized@DirectSound@@0HA)
Memory.obj : error LNK2001: unresolved external symbol "private: static int DirectSound::m_bInitialized" (?m_bInitialized@DirectSound@@0HA)
DirectSound.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound8 * DirectSound::m_pDSound" (?m_pDSound@DirectSound@@0PAUIDirectSound8@@A)
Config.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound8 * DirectSound::m_pDSound" (?m_pDSound@DirectSound@@0PAUIDirectSound8@@A)
bentgine.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound8 * DirectSound::m_pDSound" (?m_pDSound@DirectSound@@0PAUIDirectSound8@@A)
logbook.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound8 * DirectSound::m_pDSound" (?m_pDSound@DirectSound@@0PAUIDirectSound8@@A)
utils.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound8 * DirectSound::m_pDSound" (?m_pDSound@DirectSound@@0PAUIDirectSound8@@A)
Matrix.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound8 * DirectSound::m_pDSound" (?m_pDSound@DirectSound@@0PAUIDirectSound8@@A)
Memory.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound8 * DirectSound::m_pDSound" (?m_pDSound@DirectSound@@0PAUIDirectSound8@@A)
DirectSound.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSoundBuffer * DirectSound::m_pPrimaryBuffer" (?m_pPrimaryBuffer@DirectSound@@0PAUIDirectSoundBuffer@@A)
Config.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSoundBuffer * DirectSound::m_pPrimaryBuffer" (?m_pPrimaryBuffer@DirectSound@@0PAUIDirectSoundBuffer@@A)
bentgine.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSoundBuffer * DirectSound::m_pPrimaryBuffer" (?m_pPrimaryBuffer@DirectSound@@0PAUIDirectSoundBuffer@@A)
logbook.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSoundBuffer * DirectSound::m_pPrimaryBuffer" (?m_pPrimaryBuffer@DirectSound@@0PAUIDirectSoundBuffer@@A)
utils.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSoundBuffer * DirectSound::m_pPrimaryBuffer" (?m_pPrimaryBuffer@DirectSound@@0PAUIDirectSoundBuffer@@A)
Matrix.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSoundBuffer * DirectSound::m_pPrimaryBuffer" (?m_pPrimaryBuffer@DirectSound@@0PAUIDirectSoundBuffer@@A)
Memory.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSoundBuffer * DirectSound::m_pPrimaryBuffer" (?m_pPrimaryBuffer@DirectSound@@0PAUIDirectSoundBuffer@@A)
DirectSound.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound3DListener * DirectSound::m_pListener" (?m_pListener@DirectSound@@0PAUIDirectSound3DListener@@A)
Config.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound3DListener * DirectSound::m_pListener" (?m_pListener@DirectSound@@0PAUIDirectSound3DListener@@A)
bentgine.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound3DListener * DirectSound::m_pListener" (?m_pListener@DirectSound@@0PAUIDirectSound3DListener@@A)
logbook.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound3DListener * DirectSound::m_pListener" (?m_pListener@DirectSound@@0PAUIDirectSound3DListener@@A)
utils.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound3DListener * DirectSound::m_pListener" (?m_pListener@DirectSound@@0PAUIDirectSound3DListener@@A)
Matrix.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound3DListener * DirectSound::m_pListener" (?m_pListener@DirectSound@@0PAUIDirectSound3DListener@@A)
Memory.obj : error LNK2001: unresolved external symbol "private: static struct IDirectSound3DListener * DirectSound::m_pListener" (?m_pListener@DirectSound@@0PAUIDirectSound3DListener@@A)
DirectSound.obj : error LNK2001: unresolved external symbol "private: static class mathVector3 DirectSound::m_vOldListenerPos" (?m_vOldListenerPos@DirectSound@@0VmathVector3@@A)
Config.obj : error LNK2001: unresolved external symbol "private: static class mathVector3 DirectSound::m_vOldListenerPos" (?m_vOldListenerPos@DirectSound@@0VmathVector3@@A)
bentgine.obj : error LNK2001: unresolved external symbol "private: static class mathVector3 DirectSound::m_vOldListenerPos" (?m_vOldListenerPos@DirectSound@@0VmathVector3@@A)
logbook.obj : error LNK2001: unresolved external symbol "private: static class mathVector3 DirectSound::m_vOldListenerPos" (?m_vOldListenerPos@DirectSound@@0VmathVector3@@A)
utils.obj : error LNK2001: unresolved external symbol "private: static class mathVector3 DirectSound::m_vOldListenerPos" (?m_vOldListenerPos@DirectSound@@0VmathVector3@@A)
Matrix.obj : error LNK2001: unresolved external symbol "private: static class mathVector3 DirectSound::m_vOldListenerPos" (?m_vOldListenerPos@DirectSound@@0VmathVector3@@A)
Memory.obj : error LNK2001: unresolved external symbol "private: static class mathVector3 DirectSound::m_vOldListenerPos" (?m_vOldListenerPos@DirectSound@@0VmathVector3@@A)
Release/bentgine.dll : fatal error LNK1120: 5 unresolved externals
Error executing link.exe.


Warum ist das so?

Mfg
TheGamer

Demirug
2003-08-24, 18:40:29
Du hast vergessen deine ganzen statischen Variablen auch noch irgendwo zu definieren.

Im Cpp File sollte also noch etwas in der Art von

LPDIRECTSOUND8 DirectSound::m_pDSound = NULL;

usw.

stehen