LabVIEW и C ++ DLL

Я работаю над тем, что данные передаются между LabVIEW и DLL.
Интересно, как мне реализовать функцию, чтобы LabVIEW давал DLL уникальное имя в строке, а DLL возвращала указатель, который указывает на определенный блок памяти в соответствии с именем.
Другими словами, это как отношения между именем домена и IP-адресом в сетевой области.
Но «имя» определяется пользователем, и я возвращаю указатель, который динамически выделяется для имени во время выполнения. Это означает, что отношения не предопределены. Нет таблицы поиска для подражания.

Пример:
int * Mydll (char * name);

Я думаю, что это что-то вроде «ссылки на указатель» в C ++, но я не уверен. Если это так, как я могу реализовать?

0

Решение

  1. Удалить узел библиотеки вызовов.
  2. Настройте тип возвращаемого значения как «int32» или «int64» в зависимости от разрядности вашей платформы (LV не обрабатывает необработанные указатели, но если ваша DLL возвращает указатель, LV может удерживать числовое значение, пока вы не будете готовы передать его некоторым другой вызов DLL, который знает, как с этим справиться).
  3. Добавьте параметр. Настройте его для типа «String» и установите метод передачи «C String Pointer» и включите флажок «Constant».

Это сделает это. Вы можете перетащить это изображение прямо на блок-схему (это фрагмент VI), чтобы создать такой узел — просто настройте DLL и имя функции.

введите описание изображения здесь

0

Другие решения


По вопросам рекламы [email protected]