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

1

22.08.2003, 13:26

Problem mit einer Klasse

Hallo,

ich erhalte die folgenden Fehlermeldung unter VC++

--------------------Configuration: bentgine - Win32 Debug--------------------
Compiling...
DirectSound.cpp
e:\bentgine\include\directsound.h(32) : error C2079: 'DirectSound' uses undefined class 'BENTGINE_API'
e:\bentgine\include\directsound.h(32) : error C2239: unexpected token '{' following declaration of 'DirectSound'
logbook.cpp
utils.cpp
Matrix.cpp
Memory.cpp
bentgine.cpp
Error executing cl.exe.

BentgineD.dll - 2 error(s), 0 warning(s)

Quellcode

1
2
3
4
5
6
7
8
9
10
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
};


Warum ist das so?

Danke im voraus

TheGamer

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

22.08.2003, 13:33

Weil Du BENTGINE_API nicht definiert hast?
Wenn es in einer Header-Datei drin ist, dann solltest Du diese Header-Datei in DirectSound.h #includen.

Z.B.:

Bentgine.h:
#definiert BENTGINE_API

DirectSound.h:
#include "Bentgine.h"
class BENTGINE_API ...

3

22.08.2003, 13:54

das hab ich ja

#ifdef BENTGINE_EXPORTS
#define BENTGINE_API __declspec(dllexport)
#else
#define BENTGINE_API __declspec(dllimport)
#endif


die ganze dll geht zu kompilieren

und da sind noch etliche klassen drinnen


ich hab es genau so wie du in der tribase engine

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

22.08.2003, 14:02

Wird BENTGINE_EXPORTS denn auch vom Compiler gesetzt?

5

22.08.2003, 14:30

das problem hat isch von selbst gelöst, ich glaub ich muss mehr schlafen ;)

das problem war an einem anderen ort


in DirectSound.cpp

hab ich #include <DirectSound.h> stehen gehabt anstatt #include <bentgine.h> darum ging es mit allen anderen klassen nur mit dieser nicht


danke trotzdem

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

22.08.2003, 14:35

Genau das habe ich Dir oben geschrieben...

Anonymous

unregistriert

7

22.08.2003, 14:51

fast

du hast geschrieben

in der DirectSound.h bentgine.h inkludieren -> das ergibt 480 fehler
bentgine.h muss in der DirectSound.cpp inkludiert sein

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

8

30.08.2003, 13:26

da das problem ja nun geloest zu sein scheint, wuerde ich dir noch empfehlen, dass du statt einer Statischen klasse einen Singleton benutzt. :angel:

Man das Geld geht im Urlaub sooo **** schnell weg. ;D

Werbeanzeige