Доброго времени, уважаемые форумчане!
Вопрос по применению в LabVIEW модуля USB3000 от R-Technology.
В комплекте с девайсом консольные примеры, примеры CINов и две dll-ки (одна из них - обертка другой), все с исходниками.
Вычитал, что пользовать CIN в версии 8.6 не рекомендуют, хотел попробовать dll.
Программист из меня никакой, могу только консольную прораммку для девайса написать, глядя на примеры, поэтому хотел использовать то, что есть.
Внутри основной dll-ки две ф-ции, опробовал - обе работают.
Внутри той, которая обертка -45 ф-ций, ни одной воспользоваться в LV не могу, описанный в http://decibel.ni.com/content/docs/DOC-1690 способ тоже не помог (выдает ошибки даже на основную dll, ф-ции которой нормально работают).
Как применить в LV эту хитрую обертку?
То, что относится к dll-кам -
Можно ли использовать в LabVIEW обертку DLL?
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Можно ли использовать в LabVIEW обертку DLL?
В принципе, в версии 8.6 можно использовать и то и другое. Если уже есть налаженное решение с CIN, то я бы не стал переписывать его через DLL без особых на то причин (Такими причинами могут быть, например, необходимость переноса софта на LV 2011+ в недалеком будущем). Я попробовал подключить некоторые функции, ошибок при подключении нет. Однако, для работы необходимы примеры. (Например, как создается объект класса, указатель на который потом попадает в IDevPtr).
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- interested
- Сообщения: 7
- Зарегистрирован: 24 сен 2011, 17:21
- Версия LabVIEW: 8.6
- Контактная информация:
Re: Можно ли использовать в LabVIEW обертку DLL?
Может я чего-то не так делаю...
Собираю в один каталог Rtusbapi.dll, wrRtusbapi.dll, Rtusbapi.h, wrRtusbapi.h и \win16\windows.h
Пробовую подключить Tools> Import> Shared Library
Shared Library (.dll) File> Rtusbapi.dll
Header (.h) > Rtusbapi.h
В окне Configure Include Paths &Preprocessor Definition ничего, в результате "The following function(s) cannot be wrapped." и длинное warning messages.
Похоже надо что-то указать в Preprocessor Definition а что?
Собираю в один каталог Rtusbapi.dll, wrRtusbapi.dll, Rtusbapi.h, wrRtusbapi.h и \win16\windows.h
Пробовую подключить Tools> Import> Shared Library
Shared Library (.dll) File> Rtusbapi.dll
Header (.h) > Rtusbapi.h
В окне Configure Include Paths &Preprocessor Definition ничего, в результате "The following function(s) cannot be wrapped." и длинное warning messages.
Похоже надо что-то указать в Preprocessor Definition а что?
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Можно ли использовать в LabVIEW обертку DLL?
теоретически, надо указать тот файл в котором лежат определения типов BOOL (заглавными), и прочих. У меня есть исключительно негативный опыт работы с Tools>Import>Shared Library. Я делал импорт 2х функций ручной конфигурацией CLFN. Дайте пример использования, можно будет говорить дальше
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- interested
- Сообщения: 7
- Зарегистрирован: 24 сен 2011, 17:21
- Версия LabVIEW: 8.6
- Контактная информация:
Re: Можно ли использовать в LabVIEW обертку DLL?
В предложенных к девайсу CIN-ах отсутствуют ф-ции работы с ЦАП и TTL, думал, что с моей программистской квалификацией будет проще использовать Dll-ки, но все ф-ции из wrRtusbapi.dll хотят видеть на входе IDevPtr (похоже указатель на интерфейс модуля). Пробовал подавать возвращаемое значение ф-ции RtCreateInstance() из Rtusbapi.dll в качестве входного параметра для ф-ций из wrRtusbapi.dll - выдает ошибку.
Хотя в мануале
"Сама библиотека содержит всего две экспортируемые функции, одна из которых,
RtCreateInstance(), возвращает указатель на интерфейс модуля USB3000. В дальнейшем,
используя этот указатель, можно осуществлять доступ ко всем интерфейсным функциям DLL библиотеки ( см. исходные тексты примеров)."
Что луше дать в кач-ве примера?
Хотя в мануале
"Сама библиотека содержит всего две экспортируемые функции, одна из которых,
RtCreateInstance(), возвращает указатель на интерфейс модуля USB3000. В дальнейшем,
используя этот указатель, можно осуществлять доступ ко всем интерфейсным функциям DLL библиотеки ( см. исходные тексты примеров)."
Что луше дать в кач-ве примера?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 9 Ответы
- 895 Просмотры
-
Последнее сообщение dadreamer
-
- 7 Ответы
- 278 Просмотры
-
Последнее сообщение dadreamer
-
- 0 Ответы
- 1844 Просмотры
-
Последнее сообщение Anastasia
-
- 3 Ответы
- 2028 Просмотры
-
Последнее сообщение PozhiloyGoblin
-
- 0 Ответы
- 323 Просмотры
-
Последнее сообщение maxim_MA