Работа с DLL

Простейшие вопросы в области инженерной разработки

Работа с DLL

Postby pion on 07 Aug 2015, 14:34

Здравствуйте, уважаемые форумчане!
Прошу помощи по пониманию вызова функций из DLL.

Есть DLL с функциями управления АЦП.
Согласно руководству по программированию АЦП необходимо:

1. получить указатель на интерфейс АЦП, вызвав функцию RtCreateInstance();
2. используя полученный указатель на интерфейс АЦП, проинициализировать доступ к виртуальному слоту, к которому подключён модуль, применяя для этого интерфейсную функцию OpenDevice().

Есть пример на языке C, в котором вторая функция вызывается через указатель, причем, во второй функции только один параметр - это номер виртуального слота:

pModule = static_cast<IRTUSB3000 *>(RtCreateInstance("usb3000"));
if(!pModule) TerminateApplication(" Module Interface --> Bad\n");
else printf(" Module Interface --> OK\n");
for(i = 0x0; i < MaxVirtualSoltsQuantity; i++) if(pModule->OpenDevice(i)) break;

Как это сделать в LabView?
pion
beginner
beginner
 
Posts: 12
Joined: 20 Aug 2013, 18:41
LabVIEW Version: 12
Karma: 0

Re: Работа с DLL

Postby IvanLis on 07 Aug 2015, 15:37

pion wrote:Как это сделать в LabView?


В сет много примеров по этой теме, даже на русском языке, например: http://www.nf-team.org/drmad/stuff/lvdll.htm
Пользуйтесь поиском: https://www.google.ru/search?q=Calling+DLL+in+LabVIEW
User avatar
IvanLis
professor
professor
 
Posts: 4731
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 742
hardware VIP bloggers teachers

Re: Работа с DLL

Postby dadreamer on 07 Aug 2015, 18:09

pion, в предлагаемом разработчиком пакете SDK уже есть :vi: и примеры для :labview: : http://www.r-technology.ru/products/qmsoft.php (раздел "ПО для самостоятельного программирования (SDK)"). Каталоги в архиве - SDK_12_11_12\SDK\RT_USB3000\Examples\LabVIEW71 и SDK\RT_USB3000\DLL\Lib\LabVIEW.
User avatar
dadreamer
professor
professor
 
Posts: 3256
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 812
I/O VIP vision internet

Re: Работа с DLL

Postby pion on 10 Aug 2015, 10:45

В SDK для LabVIEW 7, и я не смог примеры запустить, чтобы они работали.

Кроме того, я не сразу обратил внимание на то, какие функции предоставляет DLL для доступа к АЦП, а именно, они не совсем соответствуют описанию руководства по программированию.
Например, в DLL функция OpenDevice_Usb3000 которая принимает параметры IDevPtr и VirtualSlot (описание в заголовочном \SDK\RT_USB3000\DLL\Include\wrRtusbapi.h) в отличии от функции OpenDevice, которая, согласно руководству, принимает только параметр VirtualSlot.
В итоге АЦП зашевелился.

Спасибо за помощь.
pion
beginner
beginner
 
Posts: 12
Joined: 20 Aug 2013, 18:41
LabVIEW Version: 12
Karma: 0

Re: Работа с DLL

Postby dadreamer on 10 Aug 2015, 10:58

pion wrote:я не смог примеры запустить, чтобы они работали.

А вы попробуйте закинуть файлы Rtusbapi.dll и wrRtusbapi.dll в папку C:\Windows\System32 (на 64-битной ОС - SysWOW64) и запустить. :wink: Используйте только 32-битный :labview: .
pion wrote:В SDK для LabVIEW 7

:labview: 7.1 прекрасно открывается даже в :labview: 2015.
Attachments
2015-08-10_12-57-41.jpg
User avatar
dadreamer
professor
professor
 
Posts: 3256
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 812
I/O VIP vision internet

Re: Работа с DLL

Postby pion on 10 Aug 2015, 11:52

попробуйте закинуть файлы Rtusbapi.dll и wrRtusbapi.dll в папку C:\Windows\System32 (на 64-битной ОС - SysWOW64) и запустить

Действительно работает, попробую это использовать.

Спасибо :thank:
pion
beginner
beginner
 
Posts: 12
Joined: 20 Aug 2013, 18:41
LabVIEW Version: 12
Karma: 0


Return to Для чайников

Who is online

Users browsing this forum: Google, Yandex and 10 guests

cron