Простой ответ: нет, вы не можете этого сделать (для C).
Более длинный ответ:
Вы можете получить «прототипы», как вы их назвали ТОЛЬКО для C ++, потому что объявления функций искажены . Манглинг действительно означает кодирование всей сигнатуры функции (или прототипа, если хотите) в одну строку символов без пробелов, например:
CCertificate::GetInfo(Utils::TCertInfo&) const
в искаженном виде:
_ZZNK12CCertificate7GetInfoERN5Utils9TCertInfoEE8
Mangling был вызван из-за перегрузки функций в C ++ (функции с одинаковыми именами, но с разным количеством параметров и / или разных типов). В C у вас нет oveloading, поэтому функции идентифицируются (в общих библиотеках) по имени (которое является NOT искаженным).
Подводя итог: все функции в разделяемых библиотеках идентифицируются по имени , но для C ++ эти имена являются искаженными именами, для C они не искажены.
Mangling дает вам тот дополнительный «побочный эффект», что вы можете видеть сигнатуру функции (например, вызывая nm -C ).
Надеюсь, это поможет.