Seite 2 von 4
Verfasst: 06.01.2007 20:55
von a14xerus
m0 hat geschrieben: Meine hat Version 0.4.6.1
siehe mein post /edit .
wo hast du die 0.4.6.1 her?
Verfasst: 06.01.2007 21:11
von m0
von
www.fmod.de direkt den installer für WIN32 installiert un dann die fmodex kopiert.
mfg
m0
Verfasst: 06.01.2007 21:30
von a14xerus
habe ich gemacht (welcher von den ganzen links ist denn das, ich habe den folgenden genommen:
http://www.fmod.org/files/fmodapi40601w ... taller.exe
wobei ich grade im link die richtige versio nstehen sehe, vielleicht hab ich einfach nur an falscher stelle nach der versionsnumemr geguckt
Verfasst: 06.01.2007 21:50
von m0
jo passt schon dann einfach im installationsverzeichnis\api die fmodex nehmen und fertig
Verfasst: 31.01.2007 18:54
von NicTheQuick
@FroggerProgger:
Welche Sources nimmst du, damit du dir den Code generieren lassen kannst?
Ich will mir nämlich selbst einen Konverter bauen, der aber auch das
Interface berücksichtigt. Mich stört es nämlich, dass die Hilfe auf Interfaces
aufbaut und ich hier nur alles prozedural vorliegen habe.
Verfasst: 01.02.2007 14:20
von ts-soft
@NicTheQuick
sieh mal hier:
http://www.purebasic.fr/english/viewtopic.php?t=25552
Die neue Version enthält eine exe Namens: dll2def.exe
Die generiert eine Importdatei, einschließlich der Interface-Funktionen.
Ich weiß nicht obs dir weiterhilft, aber anschauen schadet ja nicht

Verfasst: 01.02.2007 14:46
von NicTheQuick
Man könnte das ganze allerdings auch auf Prototypes aufbauen, was
schonmal viel schneller gehen würde.
In Init_FMOD() müssten dann alle Prototypes zugewiesen werden, was die
Procedure dann ziemlich aufblähen ließe, aber alles andere sind dann auch
nur noch Zweizeiler.
Hier ein Beispiel wie es aussehen könnte:
Code: Alles auswählen
Prototype.l FMOD_Memory_Initialize(poolmem.l, poollen.l, useralloc.l, userrealloc.l, userfree.l)
Prototype.l FMOD_Memory_GetStats(*currentalloced, *maxalloced)
Prototype.l FMOD_Debug_SetLevel(Level.l)
Prototype.l FMOD_Debug_GetLevel(*level)
Prototype.l FMOD_File_SetDiskBusy(busy.l)
Prototype.l FMOD_File_GetDiskBusy(*busy)
Prototype.l FMOD_System_Create(*System)
Global FMOD_Memory_Initialize.FMOD_Memory_Initialize
Global FMOD_Memory_GetStats.FMOD_Memory_GetStats
Global FMOD_Debug_SetLevel.FMOD_Debug_SetLevel
Global FMOD_Debug_GetLevel.FMOD_Debug_GetLevel
Global FMOD_File_SetDiskBusy.FMOD_File_SetDiskBusy
Global FMOD_File_GetDiskBusy.FMOD_File_GetDiskBusy
Global FMOD_System_Create.FMOD_System_Create
Procedure Init_FMOD(DeInit.l = #False) ;#False initialisiert und #True deinitialisiert die Library
Static fmodLib.l
If DeInit And IsLibrary(fmodLib)
CloseLibrary(fmodLib)
EndIf
fmodLib = OpenLibrary(#PB_Any, "fmodex.dll")
If IsLibrary(fmodLib)
FMOD_Memory_Initialize = GetFunction(fmodLib, "FMOD_Memory_Initialize")
FMOD_Memory_GetStats = GetFunction(fmodLib, "FMOD_Memory_GetStats")
FMOD_Debug_SetLevel = GetFunction(fmodLib, "FMOD_Debug_SetLevel")
FMOD_Debug_GetLevel = GetFunction(fmodLib, "FMOD_Debug_GetLevel")
FMOD_File_SetDiskBusy = GetFunction(fmodLib, "FMOD_File_SetDiskBusy")
FMOD_File_GetDiskBusy = GetFunction(fmodLib, "FMOD_File_GetDiskBusy")
FMOD_System_Create = GetFunction(fmodLib, "FMOD_System_Create")
ProcedureReturn #True
EndIf
EndProcedure
Procedure DeInit_FMOD() ;Deinitialisiert die Library
Init_FMOD(#True)
EndProcedure
Init_FMOD()
FMOD_System_Create(@System.l)
Debug System
DeInit_FMOD()
Verfasst: 01.02.2007 14:58
von ts-soft
Du kannst auch die statische Lib verwenden, dann sparste Dir die Prototypes
und das Init und hast denselben Erfolg
Verfasst: 01.02.2007 18:42
von NicTheQuick
Du meinst eine PB-Library mit eingebundener fmodex.dll?
Schön, aber wo gibts die?
Dann hab ich nur immer noch das Problem, dass ich es mit Interfaces
wesentlich besser finden würde.
Verfasst: 01.02.2007 18:57
von ts-soft
Ich meinte die "fmodexL_vc.lib", die beim FMOD Paket dabei ist. Einfach auf
Lib2PBImport.exe draufdroppen und fertig ist der Import. Konstanten und
Strukturen von Froggerproggers Include und Fetig.
Mit Interface wirste Dir wohl was selber schreiben müssen.
Includierte DLL ist bei FMODEX.dll nicht erlaubt. Siehe Lizensbestimmungen!