ActiveX & LV
-
- interested
- Сообщения: 3
- Зарегистрирован: 09 июл 2010, 09:59
- Версия LabVIEW: 9.0
- Контактная информация:
ActiveX & LV
Необходимо реализовать простейший COM-сервер, реализующий динамическую модель. Нашел http://zone.ni.com/devzone/cda/epd/p/id/1219 вот тут пример. Беру из него DLL и пытаюсь использовать приаттаченной моделью, на что получаю отказ в виде такой вот ошибки. В чем дело, что я делаю не так?
- Вложения
-
- zzz.vi
- (20.78 КБ) 232 скачивания
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: ActiveX & LV
Для регистрации класса в системе используй
regsvr32.exe путь_к_файлу.dll
или если это OCX, то
regsvr32.exe путь_к_файлу.ocx
regsvr32.exe путь_к_файлу.dll
или если это OCX, то
regsvr32.exe путь_к_файлу.ocx
-
- advanced
- Сообщения: 195
- Зарегистрирован: 21 фев 2011, 10:31
- Версия LabVIEW: 2009
- Контактная информация:
Re: ActiveX & LV
А немогли бы поподробней объяснить как это сделать? у меня тоже такая же ошибка вылезла...
-
- leader
- Сообщения: 548
- Зарегистрирован: 20 авг 2009, 17:58
- Награды: 2
- Версия LabVIEW: 2011
- Контактная информация:
Re: ActiveX & LV
start->run->cmd regsvr32.exe путь_к_файлу.dll
We live in a graphical world.
Why not program in one?
Why not program in one?
-
- advanced
- Сообщения: 195
- Зарегистрирован: 21 фев 2011, 10:31
- Версия LabVIEW: 2009
- Контактная информация:
Re: ActiveX & LV
Я так делал, интересно что при этом выдается сообщение "ошибка при вызове LoadLibrary (......) - Не найден указанный модуль", НО при этом Лабвью перестала ругаться с сообщением "Класс не зарегистрирован".
-
- junior
- Сообщения: 56
- Зарегистрирован: 24 июл 2012, 11:09
- Версия LabVIEW: 2011, 202x
- Контактная информация:
Re: ActiveX & LV
Доброе время суток.
Пишу программу для AutoCAD.
На одной домашней машине установлено два AutoCAD-а: 2007 и 2013.
На другой машине установлено AutoCAD: 2007 и 2011.
Для каждой версии AutoCAD на машинах вижу соответствующие версии компонентов ActiveX.
Изначально работал только с 2007 версией, и не задумывался об адаптации своей программы под другие версии AutoCAD.
Пришло время.
Так вот, на той машине, где установлены 2007 и 2013, не получается корректно писать программу для версии 2011, т.к. для неё компоненты ActiveX не то что не зарегистрированы, они вообще отсутствуют - что и естественно.
Для лучшего понимания - файл Чтоб увидеть о чём речь, в файле можно попробовать поизменять у кластера [Bundle By Name] на разные ACAD, (у меня сделано так для выбора reference), итак, [property Node] изменятся на более короткие: При этом, если щёлкнуть ПКМ по [property] - то выбрать другое [property] не из чего. Но при этом код является рабочим, в плане, ошибок нет -> выполнение разрешается. Да, конечно не у всех установлен ACAD какой-либо версии, но LabVIEW разрешит запустить программу и без каких-либо AutoCADов на машине.
Собственно вопросы:
Как правильно создавать код, в подобной ситуации?
Как заложить не существующие на данной машине ActiveX? Почему LabVIEW проглатывает Properties у несуществующих reference, полученные от существующих. (Использую LV 2011)
Может есть некий способ как использовать одинаковый код для разных reference.
Или может быть путь изначально не верный, м.б. реализовывать поддержку новых (или не установленных) версий ActiveX через подгрузку классов?
Пишу программу для AutoCAD.
На одной домашней машине установлено два AutoCAD-а: 2007 и 2013.
На другой машине установлено AutoCAD: 2007 и 2011.
Для каждой версии AutoCAD на машинах вижу соответствующие версии компонентов ActiveX.
Изначально работал только с 2007 версией, и не задумывался об адаптации своей программы под другие версии AutoCAD.
Пришло время.
Так вот, на той машине, где установлены 2007 и 2013, не получается корректно писать программу для версии 2011, т.к. для неё компоненты ActiveX не то что не зарегистрированы, они вообще отсутствуют - что и естественно.
Для лучшего понимания - файл Чтоб увидеть о чём речь, в файле можно попробовать поизменять у кластера [Bundle By Name] на разные ACAD, (у меня сделано так для выбора reference), итак, [property Node] изменятся на более короткие: При этом, если щёлкнуть ПКМ по [property] - то выбрать другое [property] не из чего. Но при этом код является рабочим, в плане, ошибок нет -> выполнение разрешается. Да, конечно не у всех установлен ACAD какой-либо версии, но LabVIEW разрешит запустить программу и без каких-либо AutoCADов на машине.
Собственно вопросы:
Как правильно создавать код, в подобной ситуации?
Как заложить не существующие на данной машине ActiveX? Почему LabVIEW проглатывает Properties у несуществующих reference, полученные от существующих. (Использую LV 2011)
Может есть некий способ как использовать одинаковый код для разных reference.
Или может быть путь изначально не верный, м.б. реализовывать поддержку новых (или не установленных) версий ActiveX через подгрузку классов?
-
- VIP
- Сообщения: 1338
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: ActiveX & LV
Вообще единственно правильное решение тут - установить на машине разработки все версии, поддержка которых запланирована. В чём проблема поставить на эту машину также и 2011? Теоретически можно попробовать обойтись без полной инсталляции, перенеся лишь ActiveX и зарегистрировав его. Каждый раз при выборе Property LabVIEW обращается к интерфейсам ActiveX, и если он отсутствует, то и список пуст - обойти это средствами LabVIEW вряд ли получится. Как вариант можно попробовать написать вспомогательную DLL - но вы не сможете проверить правильность работы программы при отсутствующем 2011. Классы тут не сильно помогут. Решение с классами будет, вероятно, чуть более красивым с точки зрения архитектуры, но создать методы класса для работы с 2011 всё равно нужно иметь Autocad соответствующей версии.PeyNikola писал(а):на той машине, где установлены 2007 и 2013, не получается корректно писать программу для версии 2011, т.к. для неё компоненты ActiveX не то что не зарегистрированы, они вообще отсутствуют - что и естественно.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 807 Просмотры
-
Последнее сообщение Select