On Sun, Jan 04, 2004 at 06:01:51PM +0300, Sergey Vlasov wrote: > On Sun, Jan 04, 2004 at 05:17:44PM +0300, Dmitry V. Levin wrote: > > On Sun, Jan 04, 2004 at 04:10:51PM +0300, Peter V. Saveliev wrote: > > > Нарыл. Если использовать g++, то происходят описанные события. Если же cc - > > > то всё работает номально. Без изменения кода. > > > > > > Может кто-либо прокомментировать это явление, кроме как "c++ сосёт"? > > Вы пытаетесь компилировать исходник на C компилятором C++? > Бесполезное занятие, надо использовать соответствующий компилятор и > правильно расставлять extern "C" для связи кусков на C и C++. > > > Разве что "libglade сосёт". > > > > Попробуйте сделать ваш custom callback C-функцией, т.е. extern "C". > > Если после этого с использованием g++ заработает, то libglade надо править > > на тему поддержки demangling'а. > > А надо ли? Вроде бы в общем случае extern "C" может менять даже > calling convention, поэтому с точки зрения стандарта C++ отсутствие > extern "C" там, где надо - ошибка. > > Кроме того, тут как раз не demangling, а поиск по имени, причём с > неизвестной сигнатурой - т.е. вообще нерешаемая задача. По имени можно вычислить сигнатуру. Только, действительно, надо ли? Если по дизайну libglade'а не положено, то, наверное, нет смысла. -- ldv