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 :wink:

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!