Указатель на указатель неизвестного типа |
Здравствуйте, гость ( Вход | Регистрация )
Указатель на указатель неизвестного типа |
Гость_Pahen_* |
16.3.2011, 12:10
Сообщение
#1
|
Гости |
Сложно сформулировать, но:
Существует dll, С - функция которой возвращает TYPE **var, *var потом необходим для использования других функций данной библиотеки. Структура TYPE неизвестна, заголовочников нет. Какой тип можно использовать, чтобы хранить это значение в программе? void*? |
|
|
Алексей1153 |
16.3.2011, 13:42
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
можно void* использовать
только непонятно, как так: функция возвращает TYPE **var , а потом надо передавать TYPE *var ? Разве что только через аргумент возвращает - тогда всё встаёт на свои места )) |
|
|
Гость_Pahen_* |
16.3.2011, 14:38
Сообщение
#3
|
Гости |
можно void* использовать Да да, прошу прощения, через аргумент. Так она возвращает int как код ошибки. А указатель на структуру - через аргумент.только непонятно, как так: функция возвращает TYPE **var , а потом надо передавать TYPE *var ? Разве что только через аргумент возвращает - тогда всё встаёт на свои места )) |
|
|
Iron Bug |
16.3.2011, 21:20
Сообщение
#4
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
без разницы, как она это возвращает, но если изначально есть указатель на указатель, а потом нужно разыменование этого указателя, то всё равно потребуется хотя бы имя типа TYPE. ибо *void - некорректное выражение.
|
|
|
Disaron |
16.3.2011, 21:30
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 19.2.2011 Пользователь №: 2420 Спасибо сказали: 0 раз(а) Репутация: 0 |
Блин. Увидел пост и вспомнил аналогичную тему.
Имеем в dll С-шную функцию:
Предполагаю написать C++ обертку для нескольких функций из этой либы для использования в Qt проекте. Согласно документации Цитата init_struct возвращаемый указатель на созданный контекст, используемый другими функциями библиотеки. Для подключения библиотеки буду использовать QLibrary, потому как заголовочников, как и у ТС нету и тип CR_INIT недокументирован. И вот тут у меня наступает фундаментальный ступор - какой и почему тип надо использовать для подстановки в init_struct? Чувчтвую что что-то где-то не дочитал и теперь страдаю Огромное спасибо тому, кто минимально разжует что мне делать. |
|
|
Iron Bug |
16.3.2011, 23:12
Сообщение
#6
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
заголовочников, как и у ТС нету и тип CR_INIT недокументирован. создатель библиотеки всегда поставляет заголовочники или описания типов. иначе вся библиотека просто бесполезна. по идее, должно быть описание структуры, либо заголовочник. ну, можно попробовать void*, если нигде не требуется приведение типов или явная инициализация этой структуры. что-то типа:
и потом уже ptr проставлять в вызовах других функций. Сообщение отредактировал Iron Bug - 16.3.2011, 23:17 |
|
|
Алексей1153 |
17.3.2011, 10:52
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
Rocky |
17.3.2011, 12:01
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Алексей1153, опять вырываешь слова из контекста. Разве Iron Bug это не написала?
без разницы, как она это возвращает, но если изначально есть указатель на указатель, а потом нужно разыменование этого указателя, то всё равно потребуется хотя бы имя типа TYPE. ибо *void - некорректное выражение.
Сообщение отредактировал Rocky - 17.3.2011, 12:01 |
|
|
Алексей1153 |
18.3.2011, 2:10
Сообщение
#9
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Rocky, вообще-то она написала диаметрально противоположно, а в моей фразе не нужно имя типа и не нужно разыменование
|
|
|
Текстовая версия | Сейчас: 28.3.2024, 19:40 |