Re[2]: Адрес функции в VStudio (2003)
От: _dg  
Дата: 27.10.04 14:58
Оценка:
Здравствуйте, Antikrot, Вы писали:
_dg>>При простом присваивании src=TimerCallbackProto, src получает неверный адрес.
A>Вряд ли можно вообще сделать то, что тебе надо. Скорее всего, после вот такого присваивания в src лежит адрес инструкции jmp [TimerCallbackProto] в таблице. Теоретически, можно взять 6 байт (код команды jmp) с этого адреса и вытащить оттуда реальный адрес. Но далеко не факт, что это именно так (там может быть указатель на какой-нить код, используемый дебугером и т.д.)


Мдаа... как там все запутано... Может лучше плюнуть на все и сделать через процедурный тип?


A>А вообще, зачем так делать? Ведь вызов-то по полученному в src "неправильному" адресу все равно доберется до TimerCallbackProto...

A>Или ты пишешь динамически тело этой функции? Если да, то я в принципе такую проблему обходил, могу сказать как.

Совершенно верно, мне в рантайме надо подправить в ней два адреса. Все уже работает, за исключением получения адреса самой процедуры, так что очень инетересно узнать как это можно обойти

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