Секретный деманглинг имен 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
Re: Секретный деманглинг имен Microsoft :/ в избранное  новое    модер. 
От: alexkro 
Дата: 12.08.04 00:08
Оценка:6 (1)
Здравствуйте, _Winnie, Вы писали:


_W>Вот, разрыл.


http://www.winehq.org/hypermail/wine-patches/2004/01/att-0160/01-undname.diff