crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Count0
  опции профиля:
сообщение 19.11.2011, 15:46
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 30.7.2011
Пользователь №: 2772

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день. Существует ли возможность подменять вызовы служебных слов new и delete пользовательской функцией во всех функциях, объявленных в dll и вызванных из определенного класса?
Перегрузка операторов new(size_t) и delete(void*) не подходят, так как необходима работа с примитивными типами, а перегрузка глобальных операторов затронет и часть программы не связанную с dll (хотя глобальная перегрузка в рамках одного класса подойдет).
Заранее благодарен.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 19.11.2011, 23:24
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Тут теория и про ELF, и про PE:
http://www.iecc.com/linker/linker10.html
Может, ещё вот это пригодится:
http://www.symantec.com/connect/articles/d...indows-part-two
http://www.cs.umd.edu/Library/TRs/CS-TR-4585/CS-TR-4585.pdf

система, как я понимаю, венда? а то в вопросе система не указана, но судя по "dll" - венда.
и ещё: сорцы исходной библиотеки имеются? если нет, то есть ли статический вариант этой библиотеки?

в венде пространства имён загружаемых модулей разделены. теоретически, должно быть можно перегрузить одну из функций без особого геморроя.
я предполагаю, что нужно сделать библиотеку с перегруженной функцией в пространстве std, с прилинкованной исходной, с включением зависимых библиотек(не помню на память эту опцию линкера, но она есть). а потом динамически линковать её к основному модулю. как-то так. но проверить не могу, ибо дома венды у меня нет.

в линюксе это значительно сложнее.

Сообщение отредактировал Iron Bug - 20.11.2011, 0:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 3.6.2025, 14:14