Name mangling is necessary to export C++ classes from a dll. The decorations tell the calling routine the parameters and return type so that the compiler can properly determine "this" pointers, overloads, etc.