Вытащить из DLL ActiveX

ActiveX, .NET, DLL
Ответить
Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Вытащить из DLL ActiveX

Сообщение Select »

Для внедрения ActiveX от стороннего интерфейса с функциональной поддержкой хочу применить Net.Container
Как в куче файлов DLL какого либо приложения на С, C# или Python вычислить наличие Dll файла с ActiveX. Разработчик нигде не закомментировал, а хотелось бы малой кровью ...
LabView 14

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3485
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Вытащить из DLL ActiveX

Сообщение dadreamer »

>> Для внедрения ActiveX от стороннего интерфейса с функциональной поддержкой хочу применить Net.Container
ActiveX и .NET это две принципиально разные технологии и между собой они никак не совместимы. Первая подключается через ActiveX Container (если объект имеет GUI) или через Automation Open (подпалитра Connectivity -> ActiveX). Вторая подключается через .NET Container (если опять же есть GUI) или через Constructor Node (подпалитра Connectivity -> .NET). Вам нужно определить, какой интерфейс используется в софте, его и будете пытаться подключать уже в :labview: . Хотя, если нет вменяемой документации по функциям интерфейса, то лучше сразу забросить эту затею.

>> Как в куче файлов DLL какого либо приложения на С, C# или Python вычислить наличие Dll файла с ActiveX. Разработчик нигде не закомментировал, а хотелось бы малой кровью ...
Если речь об ActiveX, то есть разные методики, например посмотреть таблицу экспорта, там должны присутствовать функции DllRegisterServer (DllInstall) / DllUnregisterServer. Или попробовать зарегистрировать её с помощью regsvr32; если зарегится, значит, это ActiveX / COM библиотека, дальше можно экспериментировать с ActiveX Container или Automation Open. См. эту тему: https://stackoverflow.com/questions/283 ... -a-com-dll
Что касается .NET, то здесь всё проще: кидаем на БД Constructor Node, жмём Browse, выбираем DLL-ку и смотрим, что получилось. Если либа экспортирует .NET объекты, то они появятся в списке :labview: . Если нет, то ничего не увидим или получим сообщение об ошибке. Естественно, нужно соблюдать разрядность: :labview: и DLL-ка должны иметь одинаковую разрядность, чтобы всё состыковалось.

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Вытащить из DLL ActiveX

Сообщение Select »

dadreamer,
"Что касается .NET, то здесь всё проще: кидаем на БД Constructor Node, жмём Browse, выбираем DLL-ку и смотрим, что получилось. Если либа экспортирует .NET объекты, то они появятся в списке :labview: . Если нет, то ничего не увидим или получим сообщение об ошибке. Естественно, нужно соблюдать разрядность: :labview: и DLL-ка должны иметь одинаковую разрядность, чтобы всё состыковалось."
-----------------------------------------------------------------------------------------------------------------------
У меня конкректная ситуация с софтом от Zaber. Они весь софт заточили под 64 Python. Они присутствуют на NI своими тулкитами для смостоятельной сборки :vi: GUI, дают какие то кривые примеры без комментариев с привязкой к внешним ресурсам. Все плюется и ругается, на каком то этапе понимаешь что отсутствуют те или иные объекты, которых с их сайта в переизбытке, терпж заканчивается. Пока что имеется рабочая GUI консоль для работы с железом. https://www.zaber.com/ довольно известна фирма, но :labview: спецы ихние темные ребята.
В онлайне никем ни в каком виде ничего не продемонстрировано.
Пока что запускаю софтину из под :labview: , несмотря на то что они дают API значения, там туева хуча алгоритмов по управлению и непролазные джунгли. С нуля строить бюджет не позволяет.
LabView 14

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3485
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Вытащить из DLL ActiveX

Сообщение dadreamer »

Как мне кажется, проще будет разобраться с их библиотеками ( https://www.zaber.com/software ) под :labview: , чем писать очередные велосипеды на .NET. Тем более что документация на :vi: предоставлена: https://www.zaber.com/wiki/Software/ASC ... iew_Driver / https://www.zaber.com/wiki/Software/Bin ... iew_Driver . Конечно, если уж очень сильно хочется, можно взять исходники библиотеки на C#, скомпилить в последней студии и результирующую DLL подключить к :labview: . Но также придётся написать :vi: -обёртки под те функции, которые потребуется "дёргать" для работы с железом. Это не очень приятное занятие, отнимающее приличное количество свободного времени.

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Вытащить из DLL ActiveX

Сообщение Select »

В мануалах нарыл ASCII команды, попробую что нибудь зарядить на VISA.
Процесс обсуждения навел на такой вариант, не уверен что из за разночтения комментов вытащу абсолютно все функции, но наверное буду двигать в этом направлении.
Благодарю за общение :drink:
LabView 14

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Вытащить из DLL ActiveX

Сообщение Select »

По ходу такую вот плюшку вытащил на NI http://www.ni.com/gate/gb/GB_INFOLVINSTDRIVER/US,
не разу с этим визардом не работал, от рекомендаций и полезной информации не откажусь
LabView 14

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3485
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Вытащить из DLL ActiveX

Сообщение dadreamer »

Мне таким тоже пользоваться не доводилось. Хочу заметить, что эта утилита в первую очередь для разработчиков драйверов, совместимых с VXI/IVI. Для рядового юзера она в 99% случаев бесполезна.
>>
This utility was created for developers of C-based instrument drivers who wish to provide a LabVIEW interface.
...
If you are not an instrument vendor, we recommend that you use this utility only if you have instrument driver expertise.
Разработчик драйвера, если он пишет на C и хочет предоставлять готовые обёртки под :labview: , должен прогнать свои либы через эту утилиту. В теории, на выходе должны получиться VI'шки, совместимые с VISA. Что на практике будет, сказать сложно. Ну, и вероятно нужно придерживаться некоторых правил при написании драйвера (а то и вовсе писать только на LabWindows).

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Вытащить из DLL ActiveX

Сообщение Select »

Да я на это обратил внимание, там есть процедура компоновки из разношерстных Dll рабочей библиотеки под :labview: . Сгрузил и тупо залил, активизировал, все примеры заработали без лишних телодвижений, Zaber применил наборы инструментов из этого тулкита.
Когда открыл переднюю панель первое что бросилось в глаза - специально под :labview: заточенный ASCII тестировщик команд. Много почерпнул полезного в плане тех вопросов которые запостил в Железе. Надо этот тулкит покурить со всех сторон, он позволяет собирать из сторонних значений GUI компоненты с процедурами.
Вложения
screenshot 2020-01-09 001.png
screenshot 2020-01-09 002.png
LabView 14

Ответить

Вернуться в «Коммуникация с приложениями»