LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Creat a DLL from a set of VIs

Hello,

 

I've a board that cames with Labview VIs for each of its functions.

As I'd like to use it from CVI, I need a DLL.

NI support team gave me the procedure to make such a DLL, it works fine.

 

But, the create DLL can't be used by 2 application in same time, as it was possible with the old fashion driver on WindowsXP, delivered by the board supplier.

When I've an application launched using functions in the DLL, it is loaded and seems to be "privative" to this application: if an other one tries to load the DLL, there is an error frolm Labview wrapper.

 

Is there an option to make such DLL "reopenable" or "reentrant"?

 

Regards

0 Kudos
Message 1 of 5
(3,137 Views)

In fact, There is a major error when the second application tries to open a function in DLL, see attached picture.

 

The Labview report is also attached if so can analyze it.

 

Download All
0 Kudos
Message 2 of 5
(3,113 Views)

Up!

 

Nobody understands my question? No solution?

0 Kudos
Message 3 of 5
(3,022 Views)

Hi R1M,

 

Is there a special reason why you need to access this dll from 2 application at the same time?

A dll can be called by two application at the same time but it depends you is it written.

Please find here a document with some explanation

http://www.ni.com/white-paper/3558/en/

 

By the way, most of the time when you access to a physical ressource, this ressource is reserved by one caller, and do not allow multi connection.

 

 

Paolo_P
Certified TestStand Architect
Certified LabVIEW Architect
National Instruments France

0 Kudos
Message 4 of 5
(2,974 Views)

The DLL is written by Lavview tool to encapsulate VI and get them reachable from CVI: the board supplier no loger delivers a C-compatible DLL, only Labview driver and C# / .net / Java... modules, that implies heavy changes in our application to manage. NI support suggested to make this way a DLL from the set of VI delivered by supplier.

In our case, on XP, the main application was using the board but it was possible in parallel to send commands from an other application.

You're right it may be a question of locking resources by DLL / VIs functions: I'd like to know it there is a specific otpin when creating the DLL to make it reentrant and possibly get double access.

 

0 Kudos
Message 5 of 5
(2,951 Views)