LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

controll i1pro3 from X-Rite by Labview

Solved!
Go to solution

I would like to controll the i1pro3 from X-Right but I don't know how.

My Labview version is 2025Q1 and I got the i1pro3's SDK including .dll and .h files.

So I tried to make a code using Call Library function, but when I set a configure of the function, the warning attached below shows. And, the Call Library function dosn't shows any parameters in the Block Diagram.  

keisdad_0-1748579871600.png

I guessed I have to do something befoe making a code, such like to share the Library or something like that.

I would appreciate it if you would let me know it.

0 Kudos
Message 1 of 4
(95 Views)
Solution
Accepted by topic author keisdad

@keisdad wrote:

 

I guessed I have to do something before making a code, such like to share the Library or something like that.

I would appreciate it if you would let me know it.


Yes, you need to go to the Parameters Tab in the Call Library Node Configuration and configure the parameters of the function according to the prototype declared in the header file. And you need to do that for every function you want to call.

 

And if you get anything wrong, LabVIEW will almost certainly crash. More accurately the DLL function will usually crash but that will normally generate a General Protection error, Access Violation or similar and LabVIEW will display a dialog that the function did something nasty and give you the option to abort or ignore. But ignoring this is pretty much never a good idea. The integrity of your process is not guaranteed anymore and continuing from this point onwards is the equivalent of playing Russian Roulette. It may go ok for a little while but sooner or later the CPU will run into corrupted memory and go upside down anyhow. Until then it may have accidentally destroyed other things including files or worse.

 

Someone else will likely recommend you to use the Import Shared Library Wizard in LabVIEW for your DLL. However that advice is only for the most trivial of DLLs really useful. The C syntax in the header is NOT capable of describing any sufficiently complex API fully. But that is all the information the Import Wizard has. It must do a lot of guessing and hoping for the best and the resulting VIs are pretty much worthless if they are not reviewed and corrected by someone with enough knowledge to create them correctly themselves. In the end the whole reviewing, refining and correction is just as much work than doing it all manually!

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 4
(74 Views)

Thank you very much!

So, I will set all parameters for each function in the DLL by manually according to header file.

When Labview shows an error, I never click "ignore".

Also, I will not use share library in Labview.

 

 

0 Kudos
Message 3 of 4
(60 Views)

@keisdad wrote:

 

Also, I will not use share library in Labview.


A DLL is a shared library! It's simply the platform independent name.

But I guess you meant the Import Shared Library Wizard😀

Rolf Kalbermatter
My Blog
0 Kudos
Message 4 of 4
(56 Views)