Ever wondering what’s the meaning of xyz@?$abc@V?$def@H@@PAX@@ when getting linking error? Not again, because now you can read it easily only by finishing this!
First, what is it?
Compiler need to pass information to linker so linker able to link object code correctly, but linker and compiler have to talk with one language. That’s how this C++ name mangling invented, bad news is there is no standard of this name mangling (Right! Microsoft has its own mangling scheme). What we know about visual C++ name mangling is only based on reverse engineer because Microsoft doesn’t release any documentation about it.
How to read it ? Continue reading