Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Может я не совсем точно выразился, но нужно мне вот что. Есть интерфейс , назовем его IMyInterface у которого есть несколько методов. Как узнать адрес памяти , где они лежат? Имеется в виду адрес входной точки в эти методы. (сразу говорю в Си я не большой спец).
Member
Статус: Не в сети Регистрация: 20.02.2004 Откуда: Barnaul
Я в Си вообще не спец (то есть совсем ), но я об этом читал изучая C# и .NET. Насколько я помню, в Си это называется функцией обратного вызова. Так что ищи по этой фразе (благо, доки по C++ завались).
Добавлено спустя 18 минут, 4 секунды: В C# функции обратного вызова реализуются через механизм делегатов
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Spiny79715 Тут .NET с отсутвием указателей вообще в стороне Я писал о конкретной точке входа в процедуру в памяти с тем, чтобы потом подменять (ассемлерной вставкой) эту процедуру. Все это никак не реашется средствами языка и уж тем более C#
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Текс, проблему решил, но малость не так как я хотел. Сейчас опишу, что я делал, может кто и поможет с более гибким применением.
И так, что по сути есть переменная в которой сидит интерфейс? Это указатель на указатель который указывает на область памяти где лежат адреса методов интерфейса. И зная порядковый номер нужного метода, узнать его адрес не составит труда. Но это в моем случае так! Нужный мне метод занимает 16 позицию это можно узнать из .h файла с описанием интерфейса.
Но как можно узнать этот же адрес, без знания порядкового номера метода? Вот в чем вопрос (хотя без .h файла работать с интерфейсом кажется не получится или я не прав?)
То как у знать я не знаю. А вот с таким описанием это просто делается. Вполне возможно , что и в твоем варианте f1 будет первой в списке, если твой интерфейс больше никаких интерфесов не реализует
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения