[C#] MS Visual C# 2005 Express Edition und fmod

WiZdooM

Erfahrenes Mitglied
Hallo

Ich wollte mal fragen, ob jemand die FMOD API (http://www.fmod.org) erfolgreich in sein Visual C# 2005 Express Edition integrieren konnte. Ich scheine da irgendwie gerade dran zu verzweifeln und kriege es nicht auf die Reihe. Ich bin nicht so der Hardcore-Coder (mehr der 3Dler), hab aber Grundkenntnisse in der Programmierung und falls jemand das hinbekommen hat, könnte er/sie mir vielleicht eine Art Walkthrough geben ?
 

WiZdooM

Erfahrenes Mitglied
Hallo Norbert,

Zur API:
Die API erlaubt verschiedene Audioformate (unter anderem *.mod, *.it, *.s3m, usw) mit allen möglichen Effekten zu verwenden.

Zum Problem:
Ich habe mal vor seeeehr langer Zeit mit einem alten Visual Studio herumgespielt. Dort war es ja so, das dem Compiler die Libraries und Header-Dateien explizit angeben musste.
Bei der VC# 2005 werden ja optionale COM/.NET-Komponenten über Projekt->Verweise "includiert" und über "using 'Komponente'; " referenziert.
Jetzt liegt mir die API nicht direkt für VC# vor sondern für die Visual C++ in Form von Header- und Library-Dateien und einer DLL vor.
Jetzt dachte ich - es funktioniert wie mit den in MSWindows registrierten COM/.Net Komponenten, nämlich über den Verweis (Durchsuchen des Systems) die DLL einbinden.
Gut und schön - nur kriege ich bei so ziemlich jeder DLL den Fehler, dass ich prüfen soll ob ich auf die DLL zugreifen kann und dass die zu referenzierende DLL eine gültige COM- oder Assambly-Komponente sein muss. Jetzt dachte ich mir, okay - vielleicht ist die DLL nicht freigegeben, aber wie verwende ich die alten *.lib/*.h Dateien des Visual C++. Ich denke mal ich brauche eher diese, als die DLL...

Soviel dazu. Jetzt gibt es ja noch die Möglichkeit über [DLLImport "xyz.dll" ...] die DLL einzubinden - nur weiss ich nicht so wirklich wie genau das Funktionieren soll, da ich zum Beispiel nicht weiss was in der DLL der Entry-Point sein könnte, geschweige denn was die anderen Parameter für Werte haben müssen.

mfg
 

Christian Kusmanow

Erfahrenes Mitglied
Hi WiZdooM!

Wenn die DLL keine COM Schnittstelle anbietet, musst Dir selber einen Wrapper für die DLL schreiben.
Wenn Du die Sourcen zu der DLL hast, kannst Dir aus den Headerfiles mit dem P/Invoke Wizard die entsprechenden Imports generieren lassen.
Das Tool musst bezahlen damit Du den Code dann herraus kopieren kannst, ist aber trotzdem sehr hilfreich, da man sieht was wie definiert werden muss und man lernt es damit sehr gut finde ich.

Aber schau am besten mal auf FMOD 3 / FMOD Ex Java interface (FMOD extras). Keine Ahnung ob das jetzt eine richtige Managed API oder lediglich ein Wrapper für fmod ist. Du kannst aber mit dem Visual Studio Java-Soutions importieren soweit ich weiss. So was habe ich aber zum Glück noch nicht machen müssen. ;) :D

@Mods: Ich finde das Thema im besser im Application und Service Design Forum aufgehoben.
 

WiZdooM

Erfahrenes Mitglied
Hallo

Danke für den Tip, ich werde das mal am Wochenende ausprobieren, vielleicht bekomme ich das ja hin.

Von der FMOD-API habe ich leider keine Sources. Zwar ist ein Wrapper für C# dabei, aber ich bin wohl nicht in der Lage den richtig einzubinden, denn ich bekomme nur einen Bruchteil der möglichen Funktionen.
Ich hab mich auch nur 4h damit auseinander gesetzt...

Besten Danke für die Antworten!

mfg
WiZdooM