Einzelnen Beitrag anzeigen

Mossi

Registriert seit: 6. Feb 2004
Ort: Wenzenbach
35 Beiträge
 
Delphi 7 Enterprise
 
#1

Methode aus einer .NET Assembly über MethodAddress aufrufen

  Alt 30. Jan 2015, 12:49
Delphi-Version: 7
Hallo zusammen,

ich versuche gerade, dass ich Methoden in einer .NET Assembly mit ihrem Namen als String aufrufe. Aber irgendwie liefert dabei MethodAddress immer nil zurück. Dabei hab ist sowohl die Klasse als auch der Methoden-name dynamisch.
kann es sein, dass das bei ComVisible Assemblies nicht funktioniert?

Der Quellcode schaut grob so aus:
Delphi-Quellcode:
type
  TProcedure = procedure of object;

...

procedure CallMethod(classObj: TPersistentClass; methodName: string);
var
  obj: TObject
  routine: TMethod;
begin
  RegisterClass(classObj);
  obj := TClass(classObj).Create;
  if obj <> nil then
  begin
    routine.Data := Pointer(obj);
    routine.Code := obj.MethodAddress(methodName);
    TProcedure(routine);
  end;
end;
Gurndsätzlich ist es so, dass das Objekt noch erzeugt wird, aber eben obj.methodAddress liefert dann nil zurück und dadurch kann die Methode natürlich auch nicht aufgerufen werden.
vielleicht hat jemand eine Idee, an was das liegen könnte, oder wie man das sonst umsetzen könnte.
  Mit Zitat antworten Zitat