Пишу обертку для дотНЕТ, нужно обернуть неуправляемую структуру, чтобы была доступна в НЕТе.
Принци прост:
Управляемый класс, в нем указатель на структуру.
Есть несколько неуправляемых функций для обработки структуры — создаю соответствующие члены класса, вызывающие эти фунции. Передаю указатель, хранящийся в классе как параметр.
Сложность в том, что все созданные экземпляры этой структуры заносятся в неуправляемый список (точнее указатели на них), и есть неуправляемая функция, которая обрабатывает список и возвращает указатель на один из экземпляров структуры.
Вот и думаю, как по указателю найти класс-обертку... Решил создать в классе статичную коллекцию, занести туда ссылки на все классы, в качестве ключа использовать адрес структуры
key = (int)*stuct
А потом по этому ключу искать в коллекции класс..
Но почему-то полученный от фунции указатель не соответствует ни одному ключу...
Как правильно получить адрес, на который ссылается указатель?
Или, может, есть более красивый способ решить такую задачку?