Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 18.3.2011, 2:10 |
Rocky, вообще-то она написала диаметрально противоположно, а в моей фразе не нужно имя типа и не нужно разыменование | |
Rocky | Дата 17.3.2011, 12:01 |
Алексей1153, опять вырываешь слова из контекста. Разве Iron Bug это не написала? без разницы, как она это возвращает, но если изначально есть указатель на указатель, а потом нужно разыменование этого указателя, то всё равно потребуется хотя бы имя типа TYPE. ибо *void - некорректное выражение. |
|
Алексей1153 | Дата 17.3.2011, 10:52 |
Iron Bug, то всё равно потребуется хотя бы имя типа TYPE. ибо *void - некорректное выражение. не потребуется в том случае, если самому разыменовывать не нужно, а лишь нужно предоставить контекст в очередную функцию объекта |
|
Iron Bug | Дата 16.3.2011, 23:12 |
заголовочников, как и у ТС нету и тип CR_INIT недокументирован. создатель библиотеки всегда поставляет заголовочники или описания типов. иначе вся библиотека просто бесполезна. по идее, должно быть описание структуры, либо заголовочник. ну, можно попробовать void*, если нигде не требуется приведение типов или явная инициализация этой структуры. что-то типа:
и потом уже ptr проставлять в вызовах других функций. |
|
Disaron | Дата 16.3.2011, 21:30 |
Блин. Увидел пост и вспомнил аналогичную тему. Имеем в dll С-шную функцию:
Предполагаю написать C++ обертку для нескольких функций из этой либы для использования в Qt проекте. Согласно документации Цитата init_struct возвращаемый указатель на созданный контекст, используемый другими функциями библиотеки. Для подключения библиотеки буду использовать QLibrary, потому как заголовочников, как и у ТС нету и тип CR_INIT недокументирован. И вот тут у меня наступает фундаментальный ступор - какой и почему тип надо использовать для подстановки в init_struct? Чувчтвую что что-то где-то не дочитал и теперь страдаю Огромное спасибо тому, кто минимально разжует что мне делать. |
|
Iron Bug | Дата 16.3.2011, 21:20 |
без разницы, как она это возвращает, но если изначально есть указатель на указатель, а потом нужно разыменование этого указателя, то всё равно потребуется хотя бы имя типа TYPE. ибо *void - некорректное выражение. | |
Pahen | Дата 16.3.2011, 14:38 |
можно void* использовать Да да, прошу прощения, через аргумент. Так она возвращает int как код ошибки. А указатель на структуру - через аргумент.только непонятно, как так: функция возвращает TYPE **var , а потом надо передавать TYPE *var ? Разве что только через аргумент возвращает - тогда всё встаёт на свои места )) |
|
Алексей1153 | Дата 16.3.2011, 13:42 |
можно void* использовать только непонятно, как так: функция возвращает TYPE **var , а потом надо передавать TYPE *var ? Разве что только через аргумент возвращает - тогда всё встаёт на свои места )) |
|
Pahen | Дата 16.3.2011, 12:10 |
Сложно сформулировать, но: Существует dll, С - функция которой возвращает TYPE **var, *var потом необходим для использования других функций данной библиотеки. Структура TYPE неизвестна, заголовочников нет. Какой тип можно использовать, чтобы хранить это значение в программе? void*? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 23:51 |