У меня есть «родная» DLL с некоторыми хорошими функциями, которые могут возвращать (и принимать) указатели на данные, которые отформатированы в соответствии с конкретными C-структурами.Вызов родных DLL-функций, которые возвращают (и принимают) указатели на структуры
В моей программе на C# меня не интересуют внутренние структуры, я просто хочу их получить и передать из собственных функций. Мне уже удалось выделить функции внутри DLL. Для указателей я думал об использовании void * (как «указатель к неизвестному»), так как мне действительно не нравятся внутренние поля выделенных структур, мне просто нужно хранить и использовать указатели для передать его в библиотечные функции библиотеки DLL.
Но использование void * для многих разных типов данных делает мой код нечитаемым! Есть ли способ в C# для typedef void * some_nicer_type_t? Или делать что-то подобное?
Спасибо, но IntPtr продолжает быть IntPtr для всего. Это может быть чище, но для меня это грязно и бессмысленно, как пустота *. Я попробовал typedef IntPtr someothertype_t, но он не компилируется. Как я могу просто определить новые типы? Я предполагаю, что я должен использовать некоторое обходное решение, например, обернуть IntPtr внутри какого-либо объекта, а затем использовать обертки для этих функций. Ух, раздражает. – gd1
@ Giacomo: Обновлен мой ответ, но на самом деле он просто накладывается на ваш обновленный комментарий. –
Благодарим вас за помощь и внимание. Это решение - лучшее, что можно сделать. – gd1