Страница 2 из 3

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

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

Если subvi никто напрямую не вызывает (но вызывает, например, по ссылке), то билдер понятия не имеет, что эта функция нужна в ехе. Он же не будет пихать в компиляцию всё, что есть в проекта просто так, на всякий случай. Соответственно, в такой ситуации subvi не попадает в ехе и его нужно принудительно включать в список "всегда включать".
То же самое касается и служебных файлов (настройки всякие). Билдер не в курсе, что этот файл понадобится программе, поэтому его надо включать принудительно.

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

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

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

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

Добавлено: 19 ноя 2021, 18:37
Artem.spb
Что вы там вообще творите?
Как так билдер настроили?
inline это вообще не вызов функции, это практически копи-паст, т.е. каждая ссылка на subVI это фактически вставка её кода в код вызывающей функции.
Скиньте простой пример вашего проекта с билдером.

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

Добавлено: 20 ноя 2021, 06:08
Agat
Настройки билдера в моем первом посте viewtopic.php?p=86731#p86731
inline subvi вынужденная мера, по другому ехешник без пинка не запускается..
Проект скину в понедельник. Спасибо за помощь!

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

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

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

Добавлено: 23 ноя 2021, 01:17
Artem.spb
Там сложно что-то посмотреть, потому что все зависимости отсутствуют.
И даже то, что есть в папке проект ищет совсем в другом месте.

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

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

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

Добавлено: 23 ноя 2021, 16:05
Artem.spb
У меня встречный вопрос: как вы так билдите, что у вас в папке "билд" лежит куча :vi: ?
build.PNG
build.PNG (19.28 КБ) 2413 просмотров
Все vi в нормальной программе прячутся в ехе, только dll и прочие технические данные отдельно лежат.

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

Добавлено: 23 ноя 2021, 16:44
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 глюк, но там таже история..
И да, у меня это не единственный проект, в другом проекте такие же настройки и все успешно!

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

Добавлено: 24 ноя 2021, 08:45
Agat
Простой пример проекта без драйверов прибора (соответственно без dll), только стандартные функции labview, проблема осталась.
Exp.rar
(404.32 КБ) 54 скачивания
Пробовал билдеть с разными настройками (включал зависимости в саппорт директорию, в сам ехе, по вызову) ниче не помогает, при запуске ехе самостоятельно не находит vi..

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

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

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

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

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

Добавлено: 24 ноя 2021, 21:02
Artem.spb
Agat писал(а): 24 ноя 2021, 08:45 Простой пример проекта без драйверов прибора (соответственно без dll), только стандартные функции labview, проблема осталась.
Exp.rarПробовал билдеть с разными настройками (включал зависимости в саппорт директорию, в сам ехе, по вызову) ниче не помогает, при запуске ехе самостоятельно не находит vi..
КАК вы так проект собираете, что файл ищется вовсе не там, где лежит?
Почему система ищет его в user.lib?
Там должны лежать максимум общие библиотеки, но никак не то, что вы разрабатываете.
proj.PNG
proj2.PNG
proj2.PNG (6.3 КБ) 2356 просмотров
Sergey Puzanov писал(а): 24 ноя 2021, 17:20 Собрал ехе без проблем - вообще ничего не менял/не выбирал в настройках, просто Tools -> Build Application (EXE) from VI... и нажал Build, всё запускается.
Ключевая разница - Tools -> Build Application (EXE) from VI, а не настройка билда из проекта.

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

Добавлено: 25 ноя 2021, 07:08
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, а не настройка билда из проекта.
В чем разница? В обоих случаях открывается окно настройки билда... Впрочем попробовал и так - результат такой же.

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

Добавлено: 25 ноя 2021, 08:06
Agat
Ууух.. все заработало! Всего то надо было перенести проект из instr.lib... :dance:
Всем спасибо за помощь.