Thema: Ios9

Einzelnen Beitrag anzeigen

cipher

Registriert seit: 2. Aug 2015
27 Beiträge
 
#104

AW: Ios9

  Alt 28. Okt 2015, 09:44
Ich vermute es liegt dann an dem const der TGUID. IIRC wird ohne const der record zuerst kopiert und dann an die Funktion übergeben. Mit const wird nur eine reference zu dem record auf den stack gepushed. Das heißt du pushed eine reference auf den stack, während dort eigentlich der record direkt erwartet wird. Innerhalb der Funktion wird dann wohl auf invaliden Speicher zugegriffen.
Ja, das könnte sein, aber die IID wird in dieser Methode auch nur als const weitergegeben:

Code:
function Supports(const Instance: IInterface; IID: TGUID; out Intf): Boolean;
begin
  Result := (Instance <> nil) and (Instance.QueryInterface(IID, Intf) = 0);
end;
Definition der QueryInterface:

Code:
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
  Mit Zitat antworten Zitat