Страница 1 из 1

Импорт класса в Labview

Добавлено: 27 окт 2018, 14:34
Denis1984
Здравствуйте,
в ходе работы по разработке стенда столкнулся со следующей проблемой. Возможно кто-то сможет подсказать.
Управление одним из приборов осуществляется с помощью соответствующего класса в библиотеке. Библиотека написана на VS.
Вопрос, можно ли как то импортировать этот класс из библиотеки VS в LabView для непосредственной работы. Пробовал это сделать через импорт dll, но насколько понял LabView позволяет импортировать только отдельные функции.
Подскажите, пожалуйста, как можно действовать в этой ситуации.

Re: Импорт класса в Labview

Добавлено: 27 окт 2018, 14:39
Blackman
Укажите Тип прибора . Это может решить Вашу проблему значительно быстрее:)

Re: Импорт класса в Labview

Добавлено: 27 окт 2018, 15:18
dadreamer
Denis1984 писал(а):Подскажите, пожалуйста, как можно действовать в этой ситуации.
Если очень кратко, то :labview: не воспринимает классы C++, бесполезно их импортировать. Нужно либо писать враппер (обёртку) на нужные функции, либо искать библиотеку, экспортирующую функции на чистом C (или ином языке, но без нативных типов данных).
В самом деле, огласите имя прибора и ссыль на документацию. Сомневаюсь, что разработчик ПО не предоставил библиотеки для работы в средах, отличных от C++.

Re: Импорт класса в Labview

Добавлено: 27 окт 2018, 15:32
Denis1984
Прибор узкоспециализированный "БЛОК ИЗМЕРЕНИЯ МАГНИТНОГО ПОТОКА ПОВЫШЕННОЙ_ТОЧНОСТИ БИМП-15/1", их всего было сделано штук 10.
С разработчиком я ежедневно переписываюсь по почте, библиотека на С++

Re: Импорт класса в Labview

Добавлено: 27 окт 2018, 15:40
Denis1984
Подскажите, пожалуйста, ведь в LabView есть возможность работы с классами. Что если создать класс в Labview, импортировать из VS отдельные функции через dll, возможно преобразовав их в чистый C. А потом просто импортировать dll в методы созданного класса LabView.
Скажите, пожалуйста, как Вы считаете это рабочая схема?

Re: Импорт класса в Labview

Добавлено: 27 окт 2018, 15:45
dadreamer
Denis1984 писал(а):Прибор узкоспециализированный "БЛОК ИЗМЕРЕНИЯ МАГНИТНОГО ПОТОКА ПОВЫШЕННОЙ_ТОЧНОСТИ БИМП-15/1", их всего было сделано штук 10.
С разработчиком я ежедневно переписываюсь по почте, библиотека на С++
Если есть опыт работы с C/C++, то можете попробовать написать обёртку, как я выше предлагал. Вам придётся выполнить преобразование между классами C++ и стандартными типами C, например std::string <-> char *. Если опыта такого нет, то трясите разработчика, может напишет новую библиотеку или обёртку. А вообще, покажите мануал на эту DLL, с описанием функций. И скажите ещё разрядность библиотеки. Есть вариант подключить DLL напрямую, если она на 64 бита и среда (то есть, :labview: ) также на 64 бита. Это не так удобно, как при работе с "нормальной" библиотекой, но возможно. Для 32-разрядной DLL такое невозможно, к сожалению.
Подскажите, пожалуйста, ведь в LabView есть возможность работы с классами. Что если создать класс в Labview, импортировать из VS отдельные функции через dll, возможно преобразовав их в чистый C. А потом просто импортировать dll в методы созданного класса LabView.
Скажите, пожалуйста, как Вы считаете это рабочая схема?
Классы C++ и классы :labview: кардинально различаются. :labview: имеет множество типов данных, которым не соответствует ни один тип из традиционных языков программирования. Кроме того, :labview: хранит данные в памяти тоже по-своему. Из-за этих факторов часто сложно сопоставить обычные типы, наподобие структур, массивов, не говоря уже о классах.

Re: Импорт класса в Labview

Добавлено: 27 окт 2018, 18:56
Denis1984
Спасибо. Буду делать обертку на С