Приложение не видит dll

Создание приложений, библиотек, инсталляторов
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Приложение не видит dll

Сообщение Artem.spb »

Agat писал(а): 19 ноя 2021, 11:33 если в настройках subvi не включать ее в вызывающую vi,
Это вообще что и как?

Если subvi никто напрямую не вызывает (но вызывает, например, по ссылке), то билдер понятия не имеет, что эта функция нужна в ехе. Он же не будет пихать в компиляцию всё, что есть в проекта просто так, на всякий случай. Соответственно, в такой ситуации subvi не попадает в ехе и его нужно принудительно включать в список "всегда включать".
То же самое касается и служебных файлов (настройки всякие). Билдер не в курсе, что этот файл понадобится программе, поэтому его надо включать принудительно.
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Artem.spb писал(а): 19 ноя 2021, 15:00
Это вообще что и как?

Если subvi никто напрямую не вызывает (но вызывает, например, по ссылке), то билдер понятия не имеет, что эта функция нужна в ехе. Он же не будет пихать в компиляцию всё, что есть в проекта просто так, на всякий случай. Соответственно, в такой ситуации subvi не попадает в ехе и его нужно принудительно включать в список "всегда включать".
То же самое касается и служебных файлов (настройки всякие). Билдер не в курсе, что этот файл понадобится программе, поэтому его надо включать принудительно.
Я включил все необходимые Subvi принудительно и в папке билдера они есть!!! Но при запуске ехешник самостоятельно не находит subvi в которых перед компиляцией не было выставлено "inline subvi into calling vls" Изображениеи выдает окно проводника в котором вручную надо выбирать
эти subvi. Почему он их не видит??? ехешник, dll и subvi все лежат в одной папке build!
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Приложение не видит dll

Сообщение Artem.spb »

Что вы там вообще творите?
Как так билдер настроили?
inline это вообще не вызов функции, это практически копи-паст, т.е. каждая ссылка на subVI это фактически вставка её кода в код вызывающей функции.
Скиньте простой пример вашего проекта с билдером.
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Настройки билдера в моем первом посте viewtopic.php?p=86731#p86731
inline subvi вынужденная мера, по другому ехешник без пинка не запускается..
Проект скину в понедельник. Спасибо за помощь!
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Artem.spb писал(а): 19 ноя 2021, 18:37 Что вы там вообще творите?
Как так билдер настроили?
inline это вообще не вызов функции, это практически копи-паст, т.е. каждая ссылка на subVI это фактически вставка её кода в код вызывающей функции.
Скиньте простой пример вашего проекта с билдером.
Проект с билдером.
PhCoKS.rar
(3.29 МБ) 55 скачиваний
Кратко напомню суть проблемы - если включать все subvi и dll в папку data, то при запуске ехешника он самостоятельно не находит ни тех ни других и выдает окно проводника, но как только показываю где лежит dll далее subvi подгружаются автоматом. Поэтому я сначала думал, что он не видит только dll и решил забилдеть его не в дату, а в корень папки build рядом с ехешником и это помогло, но только для dll, с таким раскладом dll подгружается автоматом, а вот subvi, лежащие в той же папке не видит...
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Приложение не видит dll

Сообщение Artem.spb »

Там сложно что-то посмотреть, потому что все зависимости отсутствуют.
И даже то, что есть в папке проект ищет совсем в другом месте.
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Artem.spb писал(а): 23 ноя 2021, 01:17 Там сложно что-то посмотреть, потому что все зависимости отсутствуют.
И даже то, что есть в папке проект ищет совсем в другом месте.
Вот в этом и вопрос - зачем он ищет то что в настройках билдера always include в папку support directory? Билдер ведь сам эти файлы помещает в папку с ехешником! Как такое вообще возможно, что он потом не ищит их в этой папке?
Могу скинуть связанные subvi, но не в них суть, у меня поиск начинается с subvi Read spreadsheet dbl (стандартная функция labview).
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Приложение не видит dll

Сообщение Artem.spb »

У меня встречный вопрос: как вы так билдите, что у вас в папке "билд" лежит куча :vi: ?
build.PNG
build.PNG (19.28 КБ) 2377 просмотров
Все vi в нормальной программе прячутся в ехе, только dll и прочие технические данные отдельно лежат.
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Artem.spb писал(а): 23 ноя 2021, 16:05 У меня встречный вопрос: как вы так билдите, что у вас в папке "билд" лежит куча :vi: ?
Все vi в нормальной программе прячутся в ехе, только dll и прочие технические данные отдельно лежат.
Т.е. здесь Изображение надо вместо support directory выбрать главный VI? Я так делал, не помогло. Vi в папке билд, как я уже говорил, сначала vi и dll направлял в data, но в этом случае программа не находит еще и dll, когда прописал в билдере support directory=build directory проблема с поиском dll отпала, теперь ищет только subvi.
Пробовал сделать билд на другом компе, думал может у меня с labview глюк, но там таже история..
И да, у меня это не единственный проект, в другом проекте такие же настройки и все успешно!
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Простой пример проекта без драйверов прибора (соответственно без dll), только стандартные функции labview, проблема осталась.
Exp.rar
(404.32 КБ) 52 скачивания
Пробовал билдеть с разными настройками (включал зависимости в саппорт директорию, в сам ехе, по вызову) ниче не помогает, при запуске ехе самостоятельно не находит vi..
Sergey Puzanov
assistant
assistant
Сообщения: 113
Зарегистрирован: 05 ноя 2020, 08:26
Версия LabVIEW: 18, 20.0f1
Благодарил (а): 23 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Приложение не видит dll

Сообщение Sergey Puzanov »

Собрал ехе без проблем - вообще ничего не менял/не выбирал в настройках, просто Tools -> Build Application (EXE) from VI... и нажал Build, всё запускается.
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Sergey Puzanov писал(а): 24 ноя 2021, 17:20 Собрал ехе без проблем - вообще ничего не менял/не выбирал в настройках, просто Tools -> Build Application (EXE) from VI... и нажал Build, всё запускается.
У меня на двух компах никак..
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Приложение не видит dll

Сообщение Artem.spb »

Agat писал(а): 24 ноя 2021, 08:45 Простой пример проекта без драйверов прибора (соответственно без dll), только стандартные функции labview, проблема осталась.
Exp.rarПробовал билдеть с разными настройками (включал зависимости в саппорт директорию, в сам ехе, по вызову) ниче не помогает, при запуске ехе самостоятельно не находит vi..
КАК вы так проект собираете, что файл ищется вовсе не там, где лежит?
Почему система ищет его в user.lib?
Там должны лежать максимум общие библиотеки, но никак не то, что вы разрабатываете.
proj.PNG
proj2.PNG
proj2.PNG (6.3 КБ) 2320 просмотров
Sergey Puzanov писал(а): 24 ноя 2021, 17:20 Собрал ехе без проблем - вообще ничего не менял/не выбирал в настройках, просто Tools -> Build Application (EXE) from VI... и нажал Build, всё запускается.
Ключевая разница - Tools -> Build Application (EXE) from VI, а не настройка билда из проекта.
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Artem.spb писал(а): 24 ноя 2021, 21:02
КАК вы так проект собираете, что файл ищется вовсе не там, где лежит?
Почему система ищет его в user.lib?
Там должны лежать максимум общие библиотеки, но никак не то, что вы разрабатываете.
proj.PNGproj2.PNG
этот vi был сохранен как упрощенная копия основного проекта, может поэтому ругается на перемещение.
Artem.spb писал(а): 24 ноя 2021, 21:02 Ключевая разница - Tools -> Build Application (EXE) from VI, а не настройка билда из проекта.
В чем разница? В обоих случаях открывается окно настройки билда... Впрочем попробовал и так - результат такой же.
Agat
junior
junior
Сообщения: 56
Зарегистрирован: 16 янв 2019, 09:22
Версия LabVIEW: 18
Благодарил (а): 8 раз
Контактная информация:

Re: Приложение не видит dll

Сообщение Agat »

Ууух.. все заработало! Всего то надо было перенести проект из instr.lib... :dance:
Всем спасибо за помощь.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Создание приложений»