Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#16

AW: thiscall calling convention

  Alt 16. Aug 2015, 15:07
Das erste war ein Beispiel wo kein this verwendet wird.
Nun eins mit This die Basis ist die gleiche.

Und auch das funktioniert.

Delphi-Quellcode:
function LanguageService_Dispatch(AMessage: Integer; AReturn: Pointer;
  AParams: PPointerArray; AParamCount: Integer): Integer; stdcall;
Delphi-Quellcode:
function LanguageService_Dispatch(AMessage: Integer; AReturn: Pointer;
  AParams: PPointerArray; AParamCount: Integer): Integer; stdcall;

begin
  asm
        mov This, ecx
  end;

  Result := Ord(False);

  if not Assigned(AReturn) then
    Exit;

  ///.... bla, bla
  case AMessage of
    WASERVICEFACTORY_GETINTERFACE:
          begin
            Pointer(AReturn^) := This;
            Result := Ord(True);
          end;
  end;

end;
und so weiter.
Zitat:
Ist natürlich ein Hack, aber "besser" als einen asm-Block vor jedem Methodenauruf finde ich ihn schon.)
Dieser befindet sich innerhalb meiner Funktion.

Es ging mir bei den letzten Antworten nur darum um dir zu zeigen das deine Methode sich von meiner nur wesentlich unterscheidet.
In Kombination mit und ohne This
Aber ich vermute mal das es ihm nicht viel bringt.

Wie gesagt die Winamp_APIService komplett zu veröffentlichen geht leider nicht
da steckt viel zeit und Hirnschmalz drin. Sorry

gruss

Geändert von EWeiss (16. Aug 2015 um 15:24 Uhr)
  Mit Zitat antworten Zitat