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

11

17.07.2007, 23:25

@Ba'el:
Ich vermute du meinst abstrakte Funktionen, die mit einem "= 0" deklariert werden und nicht definiert werden.

Das im ersten Post war eine verkürzte Darstellung von tE_EXPORTS. Sie sieht (schon die ganze Zeit) eigentlich so aus

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#ifdef THYMEENGINE_EXPORTS
    #ifdef WIN32
        #define tE_EXPORT __declspec(dllexport)
    #else
        #define tE_EXPORT __declspec(dllimport)
    #endif
#else
    #define tE_EXPORT
#endif


Ich Linke zu dem Programm welches die DLL verwendet einfach die Importbibliothek hinzu, was bis jetzt einwandfrei funktioniert hat.

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

12

17.07.2007, 23:29

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#ifdef WIN32
    #ifdef THYMEENGINE_EXPORTS
        #define tE_EXPORT __declspec(dllexport)
    #else
        #define tE_EXPORT __declspec(dllimport)
    #endif
#else
    #define tE_EXPORT
#endif

so rum

13

17.07.2007, 23:34

Und ich freue mich schon, dass das der Fehler ist... aber nein:
Tortzdem

Quellcode

1
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall tE::GraphicObject::GraphicObject(void)" (??0GraphicObject@tE@@QAE@XZ)" in Funktion ""int __cdecl _mangled_main(void)" (?_mangled_main@@YAHXZ)".


Trotzdem Danke für den Hinweis...

Edit:
Dieser Warnung habe ich noch bekommen beim kompillieren der DLL

Quellcode

1
2
3
te_graphic.h(76) : warning C4091: '__declspec(dllexport)': Ignoriert auf der linken Seite von 'tE::GraphicObject', wenn keine Variable deklariert wurde
te_graphic.h(109) : warning C4091: '__declspec(dllexport)': Ignoriert auf der linken Seite von 'tE::RLEGraphic', wenn keine Variable deklariert wurde
tE_Log.cpp

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

14

17.07.2007, 23:41

C-/C++-Quelltext

1
tE_EXPORT class GraphicObject 
wirft bei mir eine Warnung beim Kompilieren der dll und erzeugt in der exe den Linkerfehler 2001, nichtaufgelöstes externes Symbol. Es muss heißen

C-/C++-Quelltext

1
class tE_EXPORT GraphicObject 

Wenn das der Fehler war, und du es nicht nur falsch hierhin geschrieben hast, fühl dich gestiefelt, der Compiler weist ja sogar darauf hin, dass das so nicht geht.

15

17.07.2007, 23:42

Ja schaut, ich beutze Allegro und bekomme 53 Warnungen und alle von Allegro und nicht von mir...
Und wo war diese Warnung? Ganz in der Mitte... die ganze Zeit... SCHEI...

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

16

17.07.2007, 23:43

dann link allegro doch dynamisch :)

17

17.07.2007, 23:45

Danke nochmal für den Tipp...

Die Warnung kommen aus den Allegro Headern...

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

18

17.07.2007, 23:48

das ist natürlich pech :P
es gibt aber bestimmt eine möglichkeit, alle warnungen für allegro über präprozessor befehle auszuschalten:

C-/C++-Quelltext

1
2
3
#warnungen aus
#include <allegro.h>
#warnungen an

19

17.07.2007, 23:54

Achja gibts das?
Ich komme gut mit dem C++ Standard zurecht, nicht aber mit Windows und VC++ spezifischen Dingen wie man sieht... also so eine Warnung-Abschaltung kenne ich nicht und habe auch keine gefuden...

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

20

17.07.2007, 23:57

ich weiß nicht ob es eine gibt, gehe aber davon aus.

Werbeanzeige