FMODEX-include

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag 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?
m0
Beiträge: 150
Registriert: 12.10.2004 13:55
Wohnort: Immenstadt
Kontaktdaten:

Beitrag von m0 »

von www.fmod.de direkt den installer für WIN32 installiert un dann die fmodex kopiert.

mfg
m0
Schaut euch doch http://www.momo-wagner.de mal an ;)

MfG
m0
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag 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
m0
Beiträge: 150
Registriert: 12.10.2004 13:55
Wohnort: Immenstadt
Kontaktdaten:

Beitrag von m0 »

jo passt schon dann einfach im installationsverzeichnis\api die fmodex nehmen und fertig
Schaut euch doch http://www.momo-wagner.de mal an ;)

MfG
m0
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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()
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Du kannst auch die statische Lib verwenden, dann sparste Dir die Prototypes
und das Init und hast denselben Erfolg
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten