我正在使用dbghelp中的UnDecorateSymbolNameW
来取消装饰Microsoft符号名称。使用UNDNAME_COMPLETE
取消标记时,符号名称有时可以包含一些编译器附加信息。例如,vftable符号有时可以包含一个大括号块,其中包含一个for
关键字,后跟一个类/接口名称,例如
SomeClass ::'vftable'{代表'Foo :: Bar'}
有人可以告诉我这个名字的"{for 'Foo::Bar'}"
部分是什么意思吗?
此外,有人知道有关此的一些文档,所以我可以阅读,因为我找不到任何东西。
非常感谢!
答案 0 :(得分:2)
您的类SomeClass
使用多重继承,它有多个带虚拟方法的基类。因此,SomeClass
需要多个vtable(每个基类一个虚拟方法)。 {for 'Foo::Bar'}
告诉你你有哪个vtable。在这种情况下,它是Foo::Bar
基类的vtable。
(这应该从名称中不言而喻。)