Благодаря #tioego прикрутил деманглинг неизвестных имен в неуспешно загруженной библиотеке, что одна из самых распространенных ошибок при погромировании под личкрафты:
[08.01.2013 05:10:13.279] [0x1d1eaf0] [008] Could not load library /usr/local/lib64/leechcraft/plugins/libleechcraft_gmailnotifier.so; Cannot load library /usr/local/lib64/leechcraft/plugins/libleechcraft_gmailnotifier.so: (/usr/local/lib64/leechcraft/plugins/libleechcraft_gmailnotifier.so: undefined symbol: _ZNK10LeechCraft13GmailNotifier13GmailNotifier7GetIconEv); demangled name: LeechCraft::GmailNotifier::GmailNotifier::GetIcon() const
Мелко и удобно: https://github.com/0xd34df00d/leechcraft...
Правда, так и не нашел, какой дефайн мог бы дать понять, что __cxa_demangle есть, ну и пофиг, заюзал __GNUC__, все равно личкрафты только gcc и clang собираются.
@pooq: моча съела говно
>>gcc и шланг
куда msvc пропал? оО
Патчить надо. :3
ыыы, особая вижуальная магия :3
для msvc кажись не надо демангить, type_info нормальные имена содержит вроде
http://msdn.microsoft.com/en-us/library/... если чо
тупой ты, деманглить надо и std::type_info ни при чём тут
ппц ты тупой
ты, и дед твой
ты такой типичный петушонец — только говном да бектрейсами кидаться умеешь
мудила, нет у тебя никакого ТИПА, у тебя только СТРОКА с мангленным символом
// тупой ты, и твой дед
че ещё спизданешь?
а я и не пизжу
ты уже запизделся, петушок
строка откуда берется мудозвон?
только переходить на личности умеешь ты
не быть тебе джедаем
я не разговариваю с тупицами // из выхлопа линкера, мудила, прекращай, не смешно уже
(рантаймного линкера)
(с мангленным символом, который не удалось найти в dll-ке)
>кокококококо
продолжай тонуть в сперме, петуншонец, пока белые люди юзают typeid
ебать ты дебил, ну-ка давай заюзай свой typeid, чтоб деманглнуть символ "?func1@a@@AAEXH@Z"
и пока не поймёшь, что был неправ, больше ничего мне не пиши.
дебил тут только ты и твой папаша. если ты не знаешь, что такое typeid, type_info и как они относятся к замангленным именам — пойди и выучи.
а пока не выучишь — съеби в гугл. там тебе помогут
ты не сливайся, а код показывай
(ну то есть ладно, сливайся)
код чего? что ты несешь вообще?
впрочем на, сасай: http://ideone.com/xpA01l
ты настолько тупой, что больше двух последних коментов не помнишь?
> заюзай свой typeid, чтоб деманглнуть символ "?func1@a@@AAEXH@Z"
палю разоблачение: у тебя это не получится. Для type_info тебе нужен ТИП; а у тебя есть только СТРОКА. Даже рантаймный тип яхз как из строки получить, а статический так вообще в принципе невозможно (строка-то в рантайме появляется). И у нас здесь тип функций — не имеющий рантаймного типа, только статический. Так что чтобы ты там сейчас не кукарекал — при попытке написать работающий код ты знатно соснешь. Хотя из-за страха зафейлить такому петушку, как ты, даже на попытку духа не хватит, я уже молчу о признании своей неправоты.
и написал я это не для тебя, а для колеблющихся читателей: чтобы им сразу стало ясно, кто здесь петушок и хлебнул моей мочи.
> __cxxabiv1::__cxa_demangle
это то же самое, что у дедфуда. через typeid мне решение покажи
ты мудило
"для колеблющихся читателей" — typeid возвращает type_info. у type_info есть name(). на прыщесистемах оно возвращает мангленное имя, на msvc — вроде нет. и это и было написано в /4
но потом пришло улидтко и начало кукарекать со стороны параши. съеби назад в свой петушон и не влазь в разговор белых взрослых мужчин.
соснул здесь ты, тупица: http://ideone.com/Q1tofx
это твой же код, сведённый к минимуму.
Он иллюстрирует, что весь твой деманглинг сводится к вызову __cxa_demangle; и что в /6 я прав, а в /7 ты соснул, начав конфронтацию вместо того, чтобы признать мою правоту.
Саси, короче.
Мне не к чему применять typeid.
ты полностью пизданутый уёбок
научись сначала читать. где я говорил, что деманглить нужно иначе?
type_info существуют независимо от typeid, вообще-то
ладно, ты был прав, в msvc9 type_info::name возвращает уже демангленные имена http://ideone.com/nLbWYI
правда, это нерелевантно треду, потому что в длл-ках имена всё равно манглятся :]
и type_info ты хуй сделаешь на символе из загруженной длл-ки. Потому что СТРОКА есть, а ТИПА нихуя нет. Тупой ты, короче // не мог понятнее /4 написать? мямлишь как чмо, «кажись», «нормальные», «вроде». Будто хуй балмера изо рта вынять забыл
писать ясно научись
и оп-пост читать, чтоб ответы в тему были
в dll-ка они конечно мангляццо, но вот что вернет QLibrary::errorString() на винде — не ясно // в хуйцах балмера не разбираюсь, прости
у тебя научился, гордись!