Обертка для НЕТ
От: ImMaxim Россия http://www.picinet.narod.ru
Дата: 02.12.05 09:53
Оценка:
Пишу обертку для дотНЕТ, нужно обернуть неуправляемую структуру, чтобы была доступна в НЕТе.
Принци прост:
Управляемый класс, в нем указатель на структуру.
Есть несколько неуправляемых функций для обработки структуры — создаю соответствующие члены класса, вызывающие эти фунции. Передаю указатель, хранящийся в классе как параметр.

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

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


key = (int)*stuct


А потом по этому ключу искать в коллекции класс..

Но почему-то полученный от фунции указатель не соответствует ни одному ключу...

Как правильно получить адрес, на который ссылается указатель?

Или, может, есть более красивый способ решить такую задачку?
Re: Обертка для НЕТ
От: ImMaxim Россия http://www.picinet.narod.ru
Дата: 03.12.05 05:36
Оценка:
АП
Re: Обертка для НЕТ
От: srggal Украина  
Дата: 06.12.05 09:32
Оценка:
Здравствуйте, ImMaxim, Вы писали:

[]

IM>Вот и думаю, как по указателю найти класс-обертку... Решил создать в классе статичную коллекцию, занести туда ссылки на все классы, в качестве ключа использовать адрес структуры



IM>
IM>key = (int)*stuct 
IM>


IM>А потом по этому ключу искать в коллекции класс..


IM>Но почему-то полученный от фунции указатель не соответствует ни одному ключу...


IM>Как правильно получить адрес, на который ссылается указатель?


Я не понял из Вашего кода что-такое stuct?

Но для того, чтобы приведенный Вами код делал то, что Вы описали словами stuct должен быть указателем на указатель, Вы уверены, что в действительности это так ?

если stuct — "указатель, хранящийся в классе как параметр", то "условно"-правильный фрагмент:

key = (int)stuct
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[2]: Обертка для НЕТ
От: ImMaxim Россия http://www.picinet.narod.ru
Дата: 06.12.05 09:58
Оценка:
Здравствуйте, srggal, Вы писали:

Я уже разобрался.

stuct — это опечатка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.