FMOD Ex und Borland
-
Hi,
Kennt sich jemand mit FMOD aus? Ich hab ein paar Probleme mit dem Linker. In der hilfe von FMOD steht das die das problem kennen, aber ich kann nicht wirklich daraus deuten ob oder wie das jetzt lösen kann. (außer halt einen anderen compiler benutzen)
Important issue with Borland, LCC-Win32, Dev-C++, MinGW, Cygwin users and FMOD Ex C++ interface.
Note that due to incompatible linking standards with C++ symbols in libraries across different compilers, you will not be able to use the C++ interface of FMOD Ex with these compilers.You can only use the FMOD Ex C interface, as at least that has a compatible standard (ie stdcall symbols are always the same format).
Each C++ compiler generates its own version of mangled symbols, and the mentioned compilers are not compatible with the symbols that MSVC produces, which is what FMOD is compiled in, and is the more popular compiler for commercial development at this stage.Note that the Intel compiler and Codewarrior do not have this problem, they can resolve MSVC style symbols.
Wär echt ne klasse sachen wenn mir dabei jemand weiter helfen kann.
Danke schonmal
P.S.: Ich benutze Borland 6
-
Hallo
in dem Text steht, das du mit dem Borland-Compiler nicht das C++ Interface der Libary benutzen kannst, sondern nur das C-Interface.
bis bald
akari
-
hmm.. ICh frag jetzt mal ein fach dumm drauf los....
und wo kann ich das ändern?
-
Hallo
Du must den richtigen Header includen. Normalerweise werden Header für C++ mit .cpp gekennzeichnet, für C mit .c. Dazu natürlich noch die richtige lib/dll, die aber meistens auch entsprechend bezeichnet ist.
Aber wie die richtigen Header heißen solltest du auch in der Doku finden.bis bald
akari
-
Jetzt verwirrst du mich etwas. meines wissenstand nach werden header dateien mit .h bzw. .hpp gekennzeichnet.
In der hilfe kann ich nichts dazu finden. Das einzige was dazu steht hab ich schon zitiert. da ich noch nicht viel erfahrung mit einbinden von libs dlls etc habe, fällt mir die fehlererkennung auch recht schwer. aber villeicht kannst du mir ja ein paar fragen bezüglich der einbindung in borland beantworten.
Wie z.B. ich kann ja den bibliothekspfad in borland eingeben. ist das das selbe als wenn ich die entsprechnde datei dem projekt hinzufüge?
und muss ich die dll in mein projektpfad kopieren? oder in system32? muss ich die dem projekt hinzufügen?Es gibt bei FMOD diverse h und hpp dateien und es gibt verschiedene lib dateien wobei davon nur eine für borland und die anderen für andere compiler sind. und es gibt eine dll.
Egal wie ich das bei mir drehe und wende ich bekomm immer nen linker Fehler mit unresoved external ...der entsprechende Funktionsaufruf... referenced from ner obj datei
-
Hallo, ich arbeite auch mit FMOD und hate dasselbe Prob.
Die Datei für das C interface ist fmod.h. Die dll musst du in das Dir deines
Progs oder System32 kopieren.Das C-Interface verwendest du so:
aus zb Channel::setPosition wird ganz simpel Channel_setPosition
Gruß Aksel
Die Lib musst du nur in dein Projekt aufnehmen wie zb ne .cpp
-
Nächstes Mal Suchfunktion verwenden!
http://c-plusplus.net/forum/viewtopic-var-t-is-148237-and-highlight-is-*fmod*.html
-
Bin ich froh das es ich nen leidensgenossen gefunden hab.
Kannst du mir ein bisschen genauer erklären wie du das geimeint hast? wenn ich jetzt z.B. sowas hier eingebe:
FMOD::System *gSystem = 0; gSystem->init(32, FMOD_INIT_NORMAL, 0);dann bekomm ich den linker fehler. Wenn ich aber FMOD_System *gSystem eingebe, dann meckert der das es das nicht gibt.
eingebunden hab ich jetzt fmod.h die fmod_errors.h und die fmod_dsp.h die fmodex.dll hab ich ins Dir kopiert und die fmodex_bc.lib hab ich dem projekt hinzugefügt.
-
Probier mal FMOD_SYSTEM* system
-
tut mir leid, aber so langsam komm ich mir richtig leienhaft vor. mit der groß und klein schreibung hätte ich auch selber drauf kommen können.
Jetzt fehlt mir irgendwie die struktur. init gibts anscheinend in dem zusammenhang nicht mehr. wenn ich erst man den anfang hab dann komm ich hoffenlich klar aber im moment check nichts was da jaetzt sache ist. das unterscheidet sich ja anscheinend komplett von der hilfe und von den beispielprogrammen
-
Zitat aus oben verlinktem Thread:
Der Code in der Hilfe verwendet das C++-Interface (aus fmod.hpp), welches sich im BCB nicht einsetzen lässt. Hier ist man auf das syntaktisch etwas abweichende C-Interface aus fmod.h angewiesen, glücklicherweise wird das aber auch in den zahlreichen Beispielprogrammen im examples-Ordner der FMODEx-Installation verwendet.
-
init gibts sehr wohl noch
FMOD_System_Init()
guck doch einfach in die fmod.h, da stehen alle funktionen drin.
Guck dir mal folgendes Beispiel an:
\FMOD Ordner\FMOD Programmers API\examples\playsound\main.cDa wird sehr schön das C interface verwendet
Gruß Aksel
-
Jetzt hab ichs gecheckt. VIELEN DANK für die Hilfe.