Импорт dll, если выходной параметр функции указатель на структуру

Создание приложений, библиотек, инсталляторов
Ответить
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Импорт dll, если выходной параметр функции указатель на структуру

Сообщение Kosist »

Может я туплю, и здесь все просто, но - :labview: "отказывается" делать импорт dll, т.к. выходной параметр функции это ссылка на структуру. Ссылка на header файл - https://github.com/libusb/hidapi/blob/m ... i/hidapi.h.
Т.е. если в header файле есть такая функция

HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number);

то :labview: "не понимает", что означает HID_API_EXPORT hid_device *

Однако, функции типа

int HID_API_EXPORT HID_API_CALL hid_init(void);

Импортировать можно.

Могу ли я в таком случае вместо указателя на структуру, прописывать в качестве выходного параметра указатель просто как int? Или, нужно использовать кластер, который будет передаваться по указателю, и это кластер должен соотвествовать структуре hid_device?
Мы делили апельсин - много наших полегло...
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Импорт dll, если выходной параметр функции указатель на структуру

Сообщение dadreamer »

Выставьте тип возвращаемого значения как Unsigned Pointer-sized Integer (U64 на БД), если не собираетесь разыменовывать указатель и "петрушить" кластер в :labview: . Во все остальные функции, принимающие hid_device *, посылайте число U64.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Импорт dll, если выходной параметр функции указатель на структуру

Сообщение Kosist »

dadreamer писал(а): 09 авг 2021, 10:17 Выставьте тип возвращаемого значения как Unsigned Pointer-sized Integer (U64 на БД), если не собираетесь разыменовывать указатель и "петрушить" кластер в :labview: . Во все остальные функции, принимающие hid_device *, посылайте число U64.
Спасибо!
Мы делили апельсин - много наших полегло...
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Создание приложений»