Распаковка packed library (.lvlibp)

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

Распаковка packed library (.lvlibp)

Postby Michae_l on 07 May 2018, 16:36

Здравствуйте. В LabView я работаю недавно и ещё не вполне разобрался с библиотеками.

Подскажите, пожалуйста, существует ли в LabView возможность распаковать уже запакованную библиотеку (packed library c расширением .lvlibp)? Дело в том, что я сейчас переделываю проект, доставшийся мне от инженера, работавшего до меня, и мне необходимо изменить некоторые typedef's, которые расположены в запакованной библиотеке, а внести эти изменением никоим образом не выходит. Мне кажется, это именно из-за того, что typedef's расположены в запакованной библиотеке.

Если нельзя распаковать - может быть быть можно как-то перепаковать?
Версия LabView: 2017.

Заранее спасибо за помощь!
Michae_l
interested
interested
 
Posts: 3
Joined: 07 May 2018, 16:28
LabVIEW Version: 2017
Karma: 0

Re: Помогите пожалуйста новичку

Postby Kosist on 07 May 2018, 17:07

Распаковать/изменять нельзя. Нужно иметь исходную библиотеку (lvlib), делать в ней изменения, и забилдить снова.
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 817
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 238
CLAD I/O VIP students

Re: Помогите пожалуйста новичку

Postby dadreamer on 07 May 2018, 17:14

Сами :vi: -шки вытащить можно, также как и из скомпиленной DLL или EXE, но есть одно большое НО:
NI wrote:LabVIEW packed project libraries (.lvlibp) are a new LabVIEW file type that combines a project library and all of its referenced VIs and dependencies into a single file. Packed libraries are created via a build specification in which an existing .lvlib file is selected as the source and its publicly scoped VIs define an exported VI interface. The definition of exported VIs is similar to how a LabVIEW DLL is configured; but, unlike in a DLL where the VIs become functions callable by external code, the exported VIs contained within a packed library behave like regular VIs. They can be dropped on another VI’s block diagram, called programmatically, or linked to by a palette. VIs within a packed library are compiled for a particular OS, target CPU, and LabVIEW version. They receive a new namespace based on the packed library’s name and are optimized by removing block diagrams (and front panels for dependencies), disabling debugging, and consolidating type information. Because a packed library is a built file, it cannot be edited but it can be viewed in the LabVIEW Project Explorer just like project libraries.

Так что толку от таких :vi: ...
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Re: Помогите пожалуйста новичку

Postby Michae_l on 07 May 2018, 17:59

Kosist и dadreamer, спасибо за оперативные ответы!

Распаковать/изменять нельзя. Нужно иметь исходную библиотеку (lvlib), делать в ней изменения, и забилдить снова.

Под "забилдить" вы подразумеваете в проекте выбрать Build Specifications и затем New»Packed Library ? Подскажите, что указывать как top-level file в этом случае? Исходную библиотека .lvlib должна быть добавлена в проект или достаточно, чтобы она находилась в папке проекта?


Сами :vi: -шки вытащить можно, также как и из скомпиленной DLL или EXE, но есть одно большое НО

Каким образом можно вытащить эти файлы? В запакованной библиотеке все файлы в формате.ctl, один из таких файлов мне как раз и надо изменить. Так что вариант вытащить файл, изменить его и снова добавить в библиотеку меня устроит.
Michae_l
interested
interested
 
Posts: 3
Joined: 07 May 2018, 16:28
LabVIEW Version: 2017
Karma: 0

Re: Помогите пожалуйста новичку

Postby dadreamer on 07 May 2018, 20:31

Michae_l wrote:Каким образом можно вытащить эти файлы? В запакованной библиотеке все файлы в формате.ctl, один из таких файлов мне как раз и надо изменить. Так что вариант вытащить файл, изменить его и снова добавить в библиотеку меня устроит.

Не получится его изменить. Я уже выше написал, точнее, процитировал, почему. Это скомпилированный код, нечего там менять. Кроме прочего, в каждый файл, привязанный к lvlibp, пишется путь к библиотеке (ресурс LIBN). Такой файл даже открыть не получится, :labview: будет ругаться, что не найдена родительская библиотека. Ну, и финальный гвоздь в крышку гроба - современные :labview: по дефолту используют Fast File Format при компиляции lvlibp. На выходе получается ресурс LEIF, а не LIBPLBVW, который хоть как-то можно было распаковать "бытовым" архиватором. Как открыть LEIF, я без понятия, да и времени нет на то, чтобы это реверсить. :dntknw:
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Re: Распаковка packed library (.lvlibp)

Postby Kosist on 08 May 2018, 20:55

Отсюда вывод: lvlibp - это зло. А сколько головной боли из-за перелинковывания виаек, родителей, конфликты... Единственная выгода - это дистрибуция одного файла. Но выгода довольно таки сомнительная...
Michae_l, а не будет ли проще переписать либу с нуля? Или очень много работы?
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 817
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 238
CLAD I/O VIP students

Re: Распаковка packed library (.lvlibp)

Postby dadreamer on 08 May 2018, 22:09

Kosist wrote:Отсюда вывод: lvlibp - это зло.

Даже большее, нежели llb. Из тех хоть полноценные ВИ-айки достать можно. А эти тупо скомпилированы как динамическая библиотека, суть - загрузчик + ресурсы, урезанные по максимуму. Самое то, если надо кому-то предоставить демо-версию своих :vi: , а исходники "светить" не хочется. :D Такие либы где-то помимо :labview: той же версии даже не подключить никак, настолько специфичная штука.
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Re: Распаковка packed library (.lvlibp)

Postby Michae_l on 09 May 2018, 11:42

Спасибо большое за помощь! Я сделал как посоветовал Kosist: нашёл исходную библиотеку и перепаковал её.

Отсюда вывод: lvlibp - это зло.

Очень согласен. Заново что-то переделывать у меня ещё опыта маловато, поэтому приходится идти проторенными путями. Так что учусь потихоньку!
Michae_l
interested
interested
 
Posts: 3
Joined: 07 May 2018, 16:28
LabVIEW Version: 2017
Karma: 0


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

Who is online

Users browsing this forum: Google and 10 guests

cron