Как получить имя интерфейса во время выполнения? - PullRequest
3 голосов
/ 05 августа 2009

Если у меня есть объект, который реализует интерфейс, нетрудно использовать RTTI для поиска интерфейса и получения его GUID. Но если я хочу его имя, есть ли способ получить это? Достаточно просто получить имя класса, но для интерфейсов это выглядит немного сложнее ...

1 Ответ

1 голос
/ 05 августа 2009

Самое сложное - получить RTTI из интерфейса. Если вам удалось это сделать, то у вас уже должно быть имя в указателе записи PTypeInfo.

В одной из моих программ я написал специальную систему регистрации, которая отображала GUID в строки, чтобы я мог сообщать о неудачных вызовах QueryInterface и неудачных приведениях "as". Это было в Delphi 2005. Насколько я понимаю, в более поздних версиях Delphi RTTI для интерфейсов развивался так, что мне больше не нужна эта система.

...