3 Stimmen

Wie erhält man den Namen einer Schnittstelle zur Laufzeit?

Wenn ich ein Objekt habe, das eine Schnittstelle implementiert, ist es nicht allzu schwierig, mit RTTI die Schnittstelle nachzuschlagen und ihre GUID zu erhalten. Aber wenn ich den Namen des Objekts wissen möchte, gibt es eine Möglichkeit, diesen zu erhalten? Es ist einfach genug, den Namen einer Klasse zu erhalten, aber für Schnittstellen scheint es ein bisschen schwieriger zu sein...

1voto

Rob Kennedy Punkte 158781

Der schwierige Teil besteht darin, RTTI von einer Schnittstelle zu erhalten. Wenn Sie das geschafft haben, dann sollten Sie den Namen bereits in der PTypeInfo Datensatzzeiger.

In einem meiner Programme habe ich ein spezielles Registrierungssystem geschrieben, das GUIDs auf Strings abbildet, damit ich fehlgeschlagene Aufrufe an QueryInterface und gescheitert " as " wirft. Das war in Delphi 2005. Meinem Verständnis nach hat sich RTTI für Schnittstellen in späteren Delphi-Versionen so weiterentwickelt, dass ich dieses System möglicherweise nicht mehr benötige.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X