ich möchte folgenden Befehl, welcher mit der Delphi Version der Bass.dll funktioniert
Code: Alles auswählen
lsync := BASS_ChannelSetSync(chan,BASS_SYNC_POS or BASS_SYNC_MIXTIME,FSelEnd,LoopSyncProc,0);
..und in der Bass.dll folgendermaßen deklariert ist:
Code: Alles auswählen
function BASS_ChannelSetSync(handle: DWORD; stype: DWORD; param: QWORD; proc: SYNCPROC; user: DWORD): HSYNC; stdcall; external bassdll;
nun in der Lazarus-Version (lazdynamic_bass) der Bass.dll benutzen.
Dort ist der Befehl folgendermaßen deklariert:
Code: Alles auswählen
var BASS_ChannelSetSync:function(handle: DWORD; type_: DWORD; param: QWORD; proc: SYNCPROC; user: Pointer): HSYNC; {$IFDEF WIN32}stdcall{$ELSE}cdecl{$ENDIF};
Code: Alles auswählen
lsync := BASS_ChannelSetSync(chan,BASS_SYNC_POS or BASS_SYNC_MIXTIME,FSelEnd,LoopSyncProc,nil); //so geht es nicht, Fehlermeldung:
unit1.pas(295,80) Error: Wrong number of parameters specified for call to "LoopSyncProc"
Code: Alles auswählen
lsync := BASS_ChannelSetSync(chan,BASS_SYNC_POS or BASS_SYNC_MIXTIME,FSelEnd,@LoopSyncProc,nil); //so auch nicht, Fehlermeldung:
unit1.pas(296,93) Error: Incompatible types: got "<address of procedure(LongWord,LongWord,LongWord,LongWord);StdCall>" expected "<procedure variable type of procedure(LongWord,LongWord,LongWord,Pointer);StdCall>"
Kann bitte Jemand helfen

Liebe Grüße