From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LVLIBP linking troubles

Hello, 

 

I want to create that kind of packages organisation :

Moncontexte.JPG

Arrows shows dependencies

I first create a project with resources code to build Resources.lvlibp.

 

Then I insert resources.lvlibp in the project with interface code and build Interface.lvlibp.

The result of building is :

- interface.lvlibp

- resources.lvlibp (new)

 

Then I create an other project with implement code and insert the 2 lvlibp just created.

When I insert interface.lvlibp, it tries to find resources.lvlibp at the phisical place it used to be in Interface project...

As long as a lvlibp is locked, it cannot save its new linkage and retries on every loadings...

It looks like linkage inside a lvlibp is absolute and it's a real problem because it looses all benefits...

 

Has anyboby met, and maybe solved, this situation?...

 

Thanx for your help

 

Pierre

 

0 Kudos
Message 1 of 4
(2,814 Views)

I have seen strange things as well, however I think the following should work:

 

-Develop Resources

 

Create a distribution that puts Resources in user.lib

 

-Develop Interface, which depends on Resources inside user.lib

 

Create a distribution that puts Interface in user.lib

 

-Develop Implement, which depends on Resources and Interface inside user.lib

 

-Develop Main App depending on resources and Interface inside user.lib.

 

Ton

 

Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas

LabVIEW, programming like it should be!
0 Kudos
Message 2 of 4
(2,808 Views)

I just tried...

When building interface.lvlibp, it tries to overwrite resources.lvlibp... So it crashes.

I moved resources directory of interface build in an other directory (build settings), then build works.

user.lib looks the following :

- resources.lvlibp

- mydll.dll (linked with resources.lvlibp)

- interface.lvlibp

- Res (interface.lvlibp resources folder)

    - resources.lvlibp

    - mydll.dll

 

But when I open implement project, there are many linking mistakes with resources.lvlibp, and interface.lvlibp becomes not executable.

 

I tried every combination of moving and deleting resources.lvlib, but unsuccessfully...

 

I must have missed something...

 

Any other idea?...

 

0 Kudos
Message 3 of 4
(2,799 Views)

如果调用库函数节点通过路径引用DLL,那么所有构建规范(不仅仅是打包的项目库)都会将DLL复制到构建位置。如果CLF节点仅以名称引用DLL,它将不会复制DLL,但应该在系统搜索路径中索引DLL,但这种方法可能会导致错误。

除上述方法外,您还可以:

1。将VIs保存在一个普通的库中,但是将其设置为private和设置密码来保护库。这将阻止开发人员查看源代码。

2。将DLL添加到项目中。在构建规范中,选中Source File Settings下设置重命名文件”选项。这将防止任何链接问题(应该可以解决您提到的Linking problem)。

 

0 Kudos
Message 4 of 4
(2,305 Views)