Как я могу вызвать .Net DLL из LabView 6.1 VI? - PullRequest
2 голосов
/ 13 января 2011

Я работаю в производственной компании, которая использует LabView для тестирования наших устройств. Большинство инженеров-тестировщиков используют 7.1, который может ссылаться на сборку .Net. Однако есть группа, которая застряла в LabView 6.1. Я хотел бы, чтобы они могли использовать мою сборку .Net, которая в основном является прокси для некоторых веб-сервисов.

Я создал тестовую сборку, которая является не чем иным, как Hello World, и я пытаюсь использовать ее в VI. Я сделал COM видимым, зарегистрировал его с помощью regasm.exe и создал библиотеку типов, в которой я не уверен, что мне нужно. Когда я открываю окно «Добавить ссылку», я вижу его в Visual Studio в списке объектов COM, поэтому я знаю, что он зарегистрирован правильно.

Я очень незнаком с VI. Я только смотрю на это, потому что никто из тех, с кем я общался на производстве, ничего не знает о вызове COM-объекта в VI. Я в основном ищу некоторые названия элементов управления или пунктов меню, чтобы инженеры-испытатели указывали в правильном направлении.

Я провел много поисков в Интернете на форумах Google и NI, но ничего не нашел.

В качестве альтернативы, было бы легче написать C или C ++ DLL, которая действует как прокси для моей .Net DLL? Или есть простой способ вызвать веб-сервис из VI? Это может полностью устранить необходимость в DLL.

В настоящее время я читаю этот документ от NI для справки, но он, очевидно, ничего не знает о .Net и, возможно, не сможет помочь мне выбрать лучший путь вперед.

1 Ответ

0 голосов
/ 14 января 2011

Ух, LabView 6.1!Отличный релиз, но не поддерживается уже 8 и более лет.Однако я думаю, что интерфейс COM не сильно изменился.

Вот как добавить DLL COM / ActiveX в VI LabView:

  1. Открыть новый VI
  2. Перейдите на лицевую панель
  3. Щелкните правой кнопкой мыши, Refnum -> «Automation Refnum» (это модное слово, которое вы ищете)
  4. Щелкните правой кнопкой мыши, Свойства -> Выберите класс ActiveX

Если вы можете найти свою функцию ActiveX таким образом, вы в хорошей форме.Узлы свойств LabView и узлы вызова соответствуют свойствам и методам.

Веб-сервис - это просто HTTP-вызов GET или POST, поэтому он всегда будет работать.Однако вы будете самостоятельно заниматься разбором.(Также LV 6.1 не имеет встроенного http GET / POST, поэтому я использовал WinHTTP через ActiveX, как описано выше, для выполнения этих действий.)

...