Секретный деманглинг имен Microsoft :/ в избранное  новое всё   подписка   модер. 
От: _WinnieC++.freerun
Дата: 11.08.04 21:33
Оценка:66 (7)
Вот, разрыл.

Связанно с глючностью "UnDecorateSymbolName"

//Для поиска:
//декорирование имен манглинг mangling demangling decorate undecorate undname UnDecorateSymbolName __undname __undnameex Windows VC71 Visual Studio C++
//microsoft — скрытная сволочь.


#include <stdlib.h>
#include <iostream>

typedef void *(*MallocFuncT)(size_t);
typedef void (*FreeFuncT)(void *);


//определение - в msvcrt и тп. либах
extern "C"  
{
  char* __unDName(
    char * OutStr, 
    const char* mangled, 
    int OutStrLen, 
    MallocFuncT, 
    FreeFuncT, 
    unsigned short int flags);
}


int main()
{
  char buf[10000];
  __unDName(buf, "??$TemplFooo@H@@YAXXZ", 10000, malloc, free, 0);
  std::cout <<buf;
}



30.08.04 21:46: Перенесено модератором из 'C/C++' — Павел Кузнецов
Правильно работающая программа — просто частный случай Undefined Behavior