Einzelnen Beitrag anzeigen

CHackbart

Registriert seit: 22. Okt 2012
260 Beiträge
 
#1

Compilerproblem unter MacOS mit Delphi 10.4

  Alt 6. Aug 2021, 12:28
Hi,

ich packe das mal in einen separaten Thread und nicht in https://www.delphipraxis.net/208459-fairplay-apple.html. Eigentlich wollte ich ja nur helfen, aber bin dabei über ein Problem gestolpert welches mich seit ein paar Stunden beschäftigt.

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
 if class_addMethod(ObjCClassId, sel_registerName(M.AsAnsi(MethodName, CP_UTF8).ToPointer), fehl und FailRegistration wird ausgeführt, was dann zum beenden der Anwendung führt.

Der Grund (nach einigem Trial und Error) sind scheinbar folgende Routinen:

Delphi-Quellcode:
  procedure contentKeySession(session: AVContentKeySession;keyRequest: AVContentKeyRequest); overload; cdecl;
  procedure contentKeySession(session: AVContentKeySession;keyRequest: AVPersistableContentKeyRequest); overload; cdecl;
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ß.

Anbei habe ich mal eine einfache Beispielanwendung gepackt. Vielleicht hat ja jemand eine Idee wie man das Problem umgehen kann.

Christian
Angehängte Dateien
Dateityp: zip crash.zip (9,2 KB, 0x aufgerufen)

Geändert von CHackbart ( 6. Aug 2021 um 12:40 Uhr)
  Mit Zitat antworten Zitat