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.