Fehler beim Aufruf einer Procedure

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
iXela
Beiträge: 17
Registriert: Mo 16. Jan 2012, 21:18

Fehler beim Aufruf einer Procedure

Beitrag von iXela »

Ich hab folgende procedure, der Aufruf welcher in Delphi gut funktioniert, nicht aber mit Lazarus. Bekomme eine Fehlermeldung mit der ich irgendwie nicht weiter komme.

Code: Alles auswählen

procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall;
begin
  if (buffer <> nil) and (len = 0) then
    SendMessage(win, WM_INFO_UPDATE, 8, DWORD(PAnsiChar(buffer)));
end;  
 
 
chan := BASS_StreamCreateURL(url, 0, BASS_STREAM_STATUS, @StatusProc, nil);

Code: Alles auswählen

Error: Incompatible type for arg no. 4: Got "<address of procedure(Pointer,LongWord,LongWord);StdCall>", expected "<procedure variable type of procedure(Pointer,LongWord,Pointer);StdCall>"
Ausschnitt aus der Bibliothekshilfe:

Code: Alles auswählen

function BASS_StreamCreateURL(url: PAnsiChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer):HSTREAM; {$IFDEF WIN32}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;



Danke im Voraus. )))

Benutzeravatar
theo
Beiträge: 10874
Registriert: Mo 11. Sep 2006, 19:01

Re: Fehler beim Aufruf einer Procedure

Beitrag von theo »

Nach dem was da steht muss "user" in StatusProc wohl als Pointer deklariert werden.

iXela
Beiträge: 17
Registriert: Mo 16. Jan 2012, 21:18

Re: Fehler beim Aufruf einer Procedure

Beitrag von iXela »

Wieso läuft das aber in Delphi?

Hab die Zeile {$mode objfpc}{$H+} durch {$mode delphi}{$H+} und schon läuft alles.

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: Fehler beim Aufruf einer Procedure

Beitrag von gocher »

Da empfehle ich Dir http://wiki.lazarus.freepascal.org/Code ... n_Guide/de, Delphi nimmt es nicht so genau mit den Pointern!
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

iXela
Beiträge: 17
Registriert: Mo 16. Jan 2012, 21:18

Re: Fehler beim Aufruf einer Procedure

Beitrag von iXela »

Danke, ich lese mir das durch!

Antworten