MSVC Mangle Name
Overview
when msvc done with preprocessor and Intermediate Representation process,it generate assembly code/MASM. compiler add decoration name to indicate function,class,other to it linker,linker need this to avoid duplicate, external symbol,etc. in cli based its a ton import data come to assembly file even it just with simpleprint program, it come from iostream lib. as followmy code is:
#include <iostream>
int main(){
std::cout<<”hello world”<<std::endl;
return 0;
}it show a ton mangle name:
that we can see from comment, because my focus is gui program i use this code as example:
with generate assembly:
compiler generate with less mangle to analysis
Get root user’s stories in your inbox
Join Medium for free to get updates from this writer.
Decoration Mean
analysis based on Visual C++ name mangling because its internal and site do reverse with good reference and from LLVM generally mangle name indicate:
“?” beginning of decoration
“??” local scope or nested name follow with base scope
“@” in beginning is c decoration name call in cpp code
“@” in th middleis terminator
“?” or “??” follow with “number” is special name with number code
“_C@_1/2” string constant with 1 byte or 2 byte encode
“?$” terminated with “@” is c++ template name
“?A” is anonymous namespace
“__impl__” is import function from external code
reference:










