문제

I'm using UnDecorateSymbolNameW from dbghelp to un-decorate Microsoft symbol names. When undecorating with UNDNAME_COMPLETE, the symbol name can sometimes have, what I understand to be, some compiler appended information to it. For example a vftable symbol can sometimes have a curly bracket block containing a for keyword followed by a class/interface name, e.g.

SomeClass::'vftable'{for 'Foo::Bar'}

Can anybody inform me as to what the "{for 'Foo::Bar'}" portion of the name means?

Additionally does anybody know of some documentation about this so I can read up as I can't find anything.

Thanks very much!

도움이 되었습니까?

해결책

Your class SomeClass uses multiple inheritance, and it has multiple base classes with virtual methods. Therefore, SomeClass needs multiple vtables (one for each base class with virtual methods). The {for 'Foo::Bar'} tells you which vtable you have. In this case, it is the vtable for the Foo::Bar base class.

(This should have been self-evident from the name.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top