Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Поиск функции в памяти по ее имени |
Автор: null56 15.5.2008, 20:08 | ||||||
Возможно ли назначить обработчики события, по имени функции... Как обычный порядок работы программы.... Например Есть функция
Я хочу запомнить ее по определенному имени... что - то типа
Чтобы можно было в дальнейшем вызвать эту функцию, где - нибудь в своей программе
ВОПРОС: возможно ли найти функцию по ее имени в памяти???? Или придется это эмулировать подручными средствами? Или это лучше сделать через указатель на функцию, что будет грамотней, запомнить адрес функции? |
Автор: archimed7592 15.5.2008, 20:16 |
null56, встроенными средствами - нет, нельзя. Сразу возникает вопрос: зачем тебе это нужно? |
Автор: null56 15.5.2008, 20:16 |
Заранее благодарен всем откликнувшимся Добавлено через 8 минут и 44 секунды На самом деле больше из интереса... В php был xml парсер, который сам был написан на с++ и подключался к скриптам... Я прекрасно понимаю, что это интерпретатор и он ищет не по адресам в памяти. Там была как раз эта возможность... задать нужные функции по их именам Сейчас просто возникла задача написать кое какой парсер, не для xml конечно, но все же... думал сделать аналогичным образом Но ничего, через указатели на функции попробую сделать |
Автор: bsa 15.5.2008, 20:49 |
null56, вообще-то для этого полиморфизм придуман (наследование и виртуальные методы). Хотя, по сути - это именно указатели на функции, но в красивой оболочке. |
Автор: archimed7592 16.5.2008, 10:41 |
Ещё краше оболочка из boost::function ![]() |
Автор: bsa 16.5.2008, 12:41 | ||
а в ней случаем этот полиморфизм не используется? ![]() |
Автор: archimed7592 16.5.2008, 12:53 | ||
Он самый. Просто сравни:
|
Автор: bsa 16.5.2008, 21:40 |
archimed7592, ты как думаешь, то что ты написал топикстартер поймет? Я, слава богу, сообразил, что ты сказать хотел. Но человек, который не знает, что такое boost::function, вряд ли догадается. ![]() Хотя, с точки зрения его требований - это то, что нужно... С другой стороны, по моему, буст отличается тем, что у него УЖАСНЕЙШАЯ документация. Возможно, чтобы отсеить новичков пока не "дорастут". В свое время мне, например, чтобы понять, как залочить мьютекс, понадобилось смотреть исходники, так как в документации об этом как-то не очень говорилось (ну не знал я этой концепции тогда). |
Автор: bsa 18.5.2008, 12:26 | ||
Как создавать я понял сразу. А вот как лочить - долго не мог понять. Не знал, что это делается через отдельный объект (хотя, это и логично). |