Здравствуйте, Antikrot, Вы писали:
_dg>>При простом присваивании src=TimerCallbackProto, src получает неверный адрес.
A>Вряд ли можно вообще сделать то, что тебе надо. Скорее всего, после вот такого присваивания в src лежит адрес инструкции jmp [TimerCallbackProto] в таблице. Теоретически, можно взять 6 байт (код команды jmp) с этого адреса и вытащить оттуда реальный адрес. Но далеко не факт, что это именно так (там может быть указатель на какой-нить код, используемый дебугером и т.д.)
Мдаа... как там все запутано... Может лучше плюнуть на все и сделать через процедурный тип?
A>А вообще, зачем так делать? Ведь вызов-то по полученному в src "неправильному" адресу все равно доберется до TimerCallbackProto...
A>Или ты пишешь динамически тело этой функции? Если да, то я в принципе такую проблему обходил, могу сказать как.
Совершенно верно, мне в рантайме надо подправить в ней два адреса. Все уже работает, за исключением получения адреса самой процедуры, так что очень инетересно узнать как это можно обойти
Чтобы быть более конкретным уточню что я занимаюсь такой довольно банальной вещью, как создание таймера для конкретного экземпляра класса (т.е. подгоняю callback таймера под функцию-член класса)