LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Looking for DLL location

Hello,

 

I am looking to use "LV_GetImagePixelPtr_v2" from what I think is the "nivisscc.*" library, but I am not sure where that DLL should be located. I think I might possibly be missing it, or am looking in the wrong place.

 

Anyone have an insight in this?

0 Kudos
Message 1 of 11
(946 Views)

That DLL is part of the NI Vision Analysis Toolkit. Have you installed that?

And yes it is a licensed toolkit.

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 11
(912 Views)

Yes I have, I just cannot find the physical file's location and was hoping someone possibly knew where it was.

0 Kudos
Message 3 of 11
(880 Views)

@LearningLabVIEW wrote:

Yes I have, I just cannot find the physical file's location and was hoping someone possibly knew where it was.


By default, after VDM installation the NIVisSvc.dll should be located in C:\Windows\System32\ for 64-bit or in C:\Windows\SysWOW64\ for 32-bit Development Environment.

Andrey.

0 Kudos
Message 4 of 11
(872 Views)

Hi Learning,

 

why do you want to directly access a DLL installed by that toolkit?

Why don't you use the VIs/functions provided by the toolkit?

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 5 of 11
(871 Views)

Within my program I am using the "IMAQ GetImagePixelPtr.vi", I am giving it an image to map a Pixel Pointer, and it is not outputting anything. I am using LV 2020 32 bit, and suspecting I might not have that installed for this specific version of LV. 

0 Kudos
Message 6 of 11
(866 Views)

@GerdW wrote:

Hi Learning,

 

why do you want to directly access a DLL installed by that toolkit?

Why don't you use the VIs/functions provided by the toolkit?


Gerd, for example, if I would like to pass native IMAQ Image Data Type into my own DLL, then I should call LV_LVDTToImage() or may be LV_LVDTToGRImage() from NIVisSvc.dll inside of my own DLL, something like that:

Screenshot 2023-05-03 12.56.41.png

But this is slightly "advanced" use case. Another reason is if I would like to mix my own functions with IMAQ (like imaqGetImageInfo() etc), then I should call these directly from NIVision.dll. On the other hand its sufficient to link statically own DLL with NI DLLs, and the location is not so important, they will be called from default location. With NIVisSvc.dll its a little bit tricky, because the *.lib is not provided by NI, but it is not a big deal to generate it from DLL - this is the only one rational reason to known where NIVisSvc.dll is located.

0 Kudos
Message 7 of 11
(859 Views)

Hi Learning,

 


@LearningLabVIEW wrote:

Within my program I am using the "IMAQ GetImagePixelPtr.vi", I am giving it an image to map a Pixel Pointer, and it is not outputting anything. I am using LV 2020 32 bit, and suspecting I might not have that installed for this specific version of LV. 


So you call a IMAQ function and it operates on your data.

You get "no" output (whatever that means), but you don't get an error?

Why do you think it is "not installed" when it apparently works without giving an error???

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 8 of 11
(854 Views)

@Andrey_Dmitriev wrote:

this is the only one rational reason to known where NIVisSvc.dll is located.

Not really. Since it is located in the <system> directory, you should not even attempt to load it by path, but only by name anyways. Generally full paths for DLLs should only be used if you want to load a DLL from a custom path. But custom paths for DLLs are in most cases not a good idea. If you can't place them in the system folder or your applications own exe folder, you might be having a bigger problem in most cases.

Rolf Kalbermatter
My Blog
0 Kudos
Message 9 of 11
(848 Views)

@LearningLabVIEW wrote:

Hello,

 

I am looking to use "LV_GetImagePixelPtr_v2" from what I think is the "nivisscc.*" library, but I am not sure where that DLL should be located. I think I might possibly be missing it, or am looking in the wrong place.


If it would be missing, that VI would load broken and you could not even run it! If the function is not returning what you want it to return you have to search your problem elsewhere.

 

Does it return an error in the error cluster? What else makes you believe it is returning nothing? Is the pointer returned a NULL value? Or is it just that you actually get no error and the pointer value is not NULL but you simply don't understand what that pointer value is and how to interpret the data it is pointing at?

Rolf Kalbermatter
My Blog
0 Kudos
Message 10 of 11
(845 Views)