![]() |
Compilerproblem unter MacOS mit Delphi 10.4
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich packe das mal in einen separaten Thread und nicht in ![]() Für obiges Beispiel muss man eine Klasse mit einem Interface AVContentKeySessionDelegate erstellen. Das Interface befindet sich in der Macapi.AVFoundation unit. Sobald man aber die Klasse instanziiert, stürzt die Anwendung im constructor TOCLocal.Create; bei Reg := TRegisteredDelphiClass.RegisterClass(CType, GetObjectiveCClass); ab. Genauer gesagt es schlägt
Delphi-Quellcode:
fehl und FailRegistration wird ausgeführt, was dann zum beenden der Anwendung führt.
if class_addMethod(ObjCClassId, sel_registerName(M.AsAnsi(MethodName, CP_UTF8).ToPointer),
Der Grund (nach einigem Trial und Error) sind scheinbar folgende Routinen:
Delphi-Quellcode:
Sobald man eine der beiden Funktionen davon ausklammert, bzw. einen Parameter hinzufügt stürzt die Anwendung nicht mehr ab. Ich denke mal der Grund ist, dass zwar beides vom Compiler akzeptiert wird, aber bei den beiden Interfaces die übergeben werden nicht mehr weiterweiß.
procedure contentKeySession(session: AVContentKeySession;keyRequest: AVContentKeyRequest); overload; cdecl;
procedure contentKeySession(session: AVContentKeySession;keyRequest: AVPersistableContentKeyRequest); overload; cdecl; Anbei habe ich mal eine einfache Beispielanwendung gepackt. Vielleicht hat ja jemand eine Idee wie man das Problem umgehen kann. Christian |
AW: Compilerproblem unter MacOS mit Delphi 10.4
Zitat:
Welchen Typ hat denn das, was an keyRequest übergeben wird? |
AW: Compilerproblem unter MacOS mit Delphi 10.4
Ja der Anhang war wohl nicht mit dabei. Also hab ich den Beitrag nochmals editiert. Die Requests sind beide interface(NSObject).
Quasi so in der Form:
Delphi-Quellcode:
AVContentKeyRequest = interface(NSObject)
['{72EFF0F5-504D-45D7-AF86-6EBBF64778DA}'] end; AVPersistableContentKeyRequest = interface(NSObject) ['{4A21A91E-E44C-43C1-A55B-F0B237248ABA}'] end; |
AW: Compilerproblem unter MacOS mit Delphi 10.4
Die Lösung ist in solchen Fällen müssen die MethodName Deklarationen in der Klasse mit angegeben werden. Es reicht nicht darauf zu vertrauen, dass diese aus dem Interface genommen werden.
Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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