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

08.02.2014, 13:40

BeaEngine statische Bibliothek einbinden in Visual Studio 12

Hallo,
ich möchte BeaEngine für mein Projekt verwenden, muss dafür aber die BeaEngine.lib in das Projekt einbinden. Irgendwie klappt das nicht. Ich bekomme ständig den Fehler "Verweis auf nicht aufgelöstes externes Symbol...". Ich habe die lib in mein Projektordner gelegt und in den Projekt-Eigenschaften habe ich unter Konfigurationseigenschafen->Linker->Eingabe bei "Zusätzliche Abhängigkeiten" die Bibliothek eingetragen. Ich habe es auch schon mit pragma versucht.
Auf der Seite von BeaEngine steht, dass es komplett in C geschrieben wurde, ich will es aber in C++ verwenden. Hat es vllt. damit etwas zu tun?


MfG
MazzMan

Hi

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

08.02.2014, 14:18

Hast du vielleicht eine 64 Bit .lib und versuchst diese aber zu einer 32 Bit exe zu linken oder umgekehrt?

3

08.02.2014, 14:21

Ne, hab die 32 bit Version runtergeladen und verwende Windows 32bit
Hi

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

08.02.2014, 14:24

Und was genau für Fehlermeldungen bekommst du?

5

08.02.2014, 14:27

"Fehler 3 error LNK2019: Verweis auf nicht aufgel÷stes externes Symbol ""char const * __stdcall BeaEngineVersion(void)" (?BeaEngineVersion@@YGPBDXZ)" in Funktion "_main""
Das bedeutet doch, dass die Bibliothek nicht verlinkt wurde, oder?
Hi

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

08.02.2014, 14:45

Wenn ich mich nicht irre, ist das ein Bug in der BeaEngine.h. Dort steht ab Zeile 307:

C-/C++-Quelltext

1
2
3
4
5
6
7
#ifdef __cplusplus
extern "C"
#endif

BEA_API int __bea_callspec__ Disasm (LPDISASM pDisAsm);
BEA_API const__ char* __bea_callspec__ BeaEngineVersion (void);
BEA_API const__ char* __bea_callspec__ BeaEngineRevision (void);

Ändere das mal zu

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
#ifdef __cplusplus
extern "C"
{
#endif

BEA_API int __bea_callspec__ Disasm (LPDISASM pDisAsm);
BEA_API const__ char* __bea_callspec__ BeaEngineVersion (void);
BEA_API const__ char* __bea_callspec__ BeaEngineRevision (void);

#ifdef __cplusplus
}
#endif

7

08.02.2014, 14:51

Danke, das Problem wurde damit gelöst :)
Nun kann er allerdings die crt.lib nicht finden oder öffnen.
Hi

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

08.02.2014, 15:07

Klingt mir irgendwie danach, als wäre diese .lib, die du da hast, nicht für deine Version von Visual Studio kompiliert. Ich würde empfehlen, die .lib mit deinem Compiler selbst zu kompilieren...

9

08.02.2014, 16:04

Nein, das ist nicht das Problem :)

Bin gerade noch einmal auf der Seite von BeaEngine gewesen und dort steht, dass ich die crt.lib als zu ignorierende Bibliothek eintragen soll (Hier der Link ).
Trotzdem, danke für deine Hilfe!
Hi

Werbeanzeige