![]() |
Lazarus: SYNCPROC mit falschem Parameter
Hallo,
folgende Zeile compiliert mit Delphi7 ohne Probleme...mit Lazarus gibts eine Fehlermeldung:
Code:
Die Fehlermeldung kommt bei @MetaSync und zwar:
BASS_ChannelSetSync(chan, BASS_SYNC_META, 0, @MetaSync, nil);
Error: Incompatible type for arg no. 4: Got "<address of procedure(LongWord,LongWord,LongWord,LongWord);Std Call>", expected "<procedure variable type of procedure(LongWord,LongWord,LongWord,Pointer);StdC all>" Die Sync-Procedure ist wie folgt definiert: procedure MetaSync(handle: HSYNC; channel, data, user: DWORD); stdcall; Weiß jemand zufällig eine Lösung? |
AW: Lazarus-Problem
Zitat:
Zitat:
nil, 0, typecast usw. Oder mal den Idioten fragst, welcher das BASS_ChannelSetSync falsch deklariert hat. |
AW: Lazarus-Problem
Das hat leider keine Änderung gebracht, dafür kommt jetzt ne neue Fehlermeldung:
Error: Incompatible type for arg no. 5: Got "ShortInt", expected "Pointer" Aber das ist ja auch arg no.5, ursprünglich hatte er aber an arg no.4 rumgemeckert :-( |
AW: Lazarus-Problem
Das ist übrigens die Definition:
HSYNC BASS_ChannelSetSync( DWORD handle, DWORD type, QWORD param, SYNCPROC *proc, void *user ); |
AW: Lazarus-Problem
War in der Zeile verruscht. :oops:
(hatte mich schon etwas gewundert, wegen den hier 4 und da 5 Parametern ... Fehler bei Parameter 4 passte aber auf beiden Seiten) Die richtige Frage ist also "Wie ist der Typ SYNCPROC definiert?". Zitat:
|
AW: Lazarus-Problem
Die kommt aus der Bass.dll und ist so definiert:
Code:
SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: Pointer); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
|
AW: Lazarus-Problem
Und nun schau mal, wie deine Funktion deklariert ist. :zwinker:
Zitat:
PS: Es wäre nett, wenn du dem ersten Beitrag einen anderen Titel gibst. Stell die mal vor alle würden nur noch Delphi-Problem, .Net-Problem, HTML-Problem oder Lazarus-Problem da hinschreiben. |
AW: Lazarus-Problem
Ersetze die Zeile
Delphi-Quellcode:
{$mode objfpc}{$H+}
durch
Delphi-Quellcode:
{$mode delphi}{$H+}
und schon läuft alles wie eine 1. P.S. ist sehr oft die 3. Zeile in jeder Unit. |
AW: Lazarus-Problem
Danke für die Antwort :-) Sowohl die Tipps von OrNEC als auch von himitsu haben das Probelm gelöst.
Kann ich den Titel tatsächlich bearbeiten? Wenn ich beim ersten Beitrag auf bearbeiten klicke, kann ich nur den Beitrag bearbeiten aber nicht den Titel... |
AW: Lazarus-Problem
Klicke unten einmal auf erweitert, wenn Du im Bearbeiten bist, dann kannst Du auch den Titel editieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz