![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 3 Всего: 32 |
vtlb не специфицирована. все компиляторы реализуют её как хотят. юзать её тоже крайне не желательно. -------------------- ![]() |
|||
|
||||
Abyx |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 1 Всего: 10 |
но это только если
для этого надо запрещать множественное наследование Это сообщение отредактировал(а) Abyx - 4.8.2010, 19:12 |
||||
|
|||||
MrLukS |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2009 Репутация: нет Всего: нет |
Есть класс SomeClass. Описание класса выше.
Необходимо перехватить с помощью MS Detours 2.1 функцию entryClass->SomeFunc(), функция-перехватчик:
Заголовки SomeClass в первом посте. // Edit: в оригинальном SomeClass ЕСТЬ наследование. Я не имею права изменять этот класс. Это сообщение отредактировал(а) MrLukS - 4.8.2010, 19:15 |
||||
|
|||||
Abyx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 1 Всего: 10 |
||||
|
||||
MrLukS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2009 Репутация: нет Всего: нет |
Каким образом узнать размер указателя? Это сообщение отредактировал(а) MrLukS - 4.8.2010, 19:27 |
|||
|
||||
Modul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
А почему бы не передать указатель на объект и вызвать нужный метод.
Что для С было нужно и просто, для С++ напоминает жуть ! --------------------
I'll be back ! |
|||
|
||||
Abyx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 1 Всего: 10 |
||||
|
||||
MrLukS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2009 Репутация: нет Всего: нет |
И так, вот полный код:
К сожалению, код не выполняет своей главной функции, к тому же крашиться при попытке вызова оригинальной функции. |
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Всё что можно в Си, можно и в С++... -------------------- вопросов больше чем ответов |
|||
|
||||
Abyx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 1 Всего: 10 |
||||
|
||||
MrLukS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2009 Репутация: нет Всего: нет |
Abyx, =\ Я показал где ошибка: я не могу сохранить указатель на функцию. 73 строка, выдает неправильный указатель.
|
|||
|
||||
Abyx |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 1 Всего: 10 |
MrLukS, вам еще рано этим заниматься. сначала изучите матчасть.
|
|||
|
||||
MrLukS |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2009 Репутация: нет Всего: нет |
Abyx, я знаю матчасть. Я не знаю лишь STL, который я никогда не использовал. И надеюсь никогда не буду использовать. Привык, видите-ли, не использовать всякие примочки и кодить на чистом языке...
Спасибо за помощь, дальше буду разбираться как-нибудь сам. Наверное перепишу проект на асме.. Там хотя-бы не будет таких мук с классами. |
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Сильно сомневаюсь. Вот bsa, пожалуй, может так сказать...
![]() Довольно неразумный подход, отказываться от библиотек. Чисто так, для сведения. VTBL не имеет никакого отношения к стандарту С++. Реализация вольна осуществлять "виртуальный" вызов функции на своё усмотрение. Это сообщение отредактировал(а) Леопольд - 4.8.2010, 22:40 -------------------- вопросов больше чем ответов |
|||
|
||||
MrLukS |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2009 Репутация: нет Всего: нет |
![]()
Знаю, однако только так я смогу контролировать все, что накодил. Не люблю, как я уже сказал, пользоваться готовым закрытым кодом, да еще и работающим неизвестно как. Темболее это же мелкомягкие... ![]() Проблему решил, vtable творят чудеса ![]() ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |