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

ActiveX, .NET, DLL

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

Postby Select on 08 Jan 2020, 02:46

Для внедрения ActiveX от стороннего интерфейса с функциональной поддержкой хочу применить Net.Container
Как в куче файлов DLL какого либо приложения на С, C# или Python вычислить наличие Dll файла с ActiveX. Разработчик нигде не закомментировал, а хотелось бы малой кровью ...
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 190
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5

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

Postby dadreamer on 08 Jan 2020, 14:02

>> Для внедрения 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-ка должны иметь одинаковую разрядность, чтобы всё состыковалось.
User avatar
dadreamer
professor
professor
 
Posts: 3376
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 853
I/O VIP vision internet

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

Postby Select on 08 Jan 2020, 18:26

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 18
User avatar
Select
advanced
advanced
 
Posts: 190
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5

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

Postby dadreamer on 08 Jan 2020, 19:20

Как мне кажется, проще будет разобраться с их библиотеками ( 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: -обёртки под те функции, которые потребуется "дёргать" для работы с железом. Это не очень приятное занятие, отнимающее приличное количество свободного времени.
User avatar
dadreamer
professor
professor
 
Posts: 3376
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 853
I/O VIP vision internet

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

Postby Select on 09 Jan 2020, 01:46

В мануалах нарыл ASCII команды, попробую что нибудь зарядить на VISA.
Процесс обсуждения навел на такой вариант, не уверен что из за разночтения комментов вытащу абсолютно все функции, но наверное буду двигать в этом направлении.
Благодарю за общение :drink:
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 190
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5

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

Postby Select on 09 Jan 2020, 02:33

По ходу такую вот плюшку вытащил на NI http://www.ni.com/gate/gb/GB_INFOLVINSTDRIVER/US,
не разу с этим визардом не работал, от рекомендаций и полезной информации не откажусь
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 190
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5

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

Postby dadreamer on 09 Jan 2020, 17:11

Мне таким тоже пользоваться не доводилось. Хочу заметить, что эта утилита в первую очередь для разработчиков драйверов, совместимых с 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).
User avatar
dadreamer
professor
professor
 
Posts: 3376
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 853
I/O VIP vision internet

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

Postby Select on 09 Jan 2020, 22:55

Да я на это обратил внимание, там есть процедура компоновки из разношерстных Dll рабочей библиотеки под :labview: . Сгрузил и тупо залил, активизировал, все примеры заработали без лишних телодвижений, Zaber применил наборы инструментов из этого тулкита.
Когда открыл переднюю панель первое что бросилось в глаза - специально под :labview: заточенный ASCII тестировщик команд. Много почерпнул полезного в плане тех вопросов которые запостил в Железе. Надо этот тулкит покурить со всех сторон, он позволяет собирать из сторонних значений GUI компоненты с процедурами.
Attachments
screenshot 2020-01-09 001.png
screenshot 2020-01-09 002.png
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 190
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5


Return to Коммуникация с приложениями

Who is online

Users browsing this forum: No registered users and 2 guests

cron