LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Include dll in built application distribution

We are using the Call Library Function Node with LV 8.5 to include our external C-DLLs.
0 Kudos
Message 11 of 14
(1,126 Views)

Steimer,

 

You can include a DLL in your installer without needing the development suite in which you created it (the DLL should be independent of the suite). Do you receive an error when you try calling the DLL (if so what is the error)? What development environment are you using? If it is Microsoft Visual Studio, we have tutorials on how to create a DLL (Building a DLL with Visual C++ ).

 

Please let me know if the tutorial is helpful and I look forward to your response.

 

Cheers,

 

Jonah Paul

Applications Engineer

National Instruments

Jonah Paul
Marketing Manager, NI Software
0 Kudos
Message 12 of 14
(1,101 Views)

I use the "Microsoft Visual C++ Development Suite 2008" for building my DLL. The created VI works fine on the programming PC. I also include all my DLLs in the Installer but I can't start it on a target PC after the installation. I just receive an error message like:

"Fehlende Externe Funktion RawDataRGB.dll:RawDataRGB:C in VI RawAverageShutter.vi."

( Missing external function DLLName.dll: DLLName:C in VI VIName.vi. )

After the installation of the Microsoft C++ Development Suite it works but I don't want to install that on the target PC, in my opinion it should be also run without it.

Message Edited by Steimers on 09-04-2008 07:51 AM
Message 13 of 14
(1,081 Views)

@Steimers wrote:

I use the "Microsoft Visual C++ Development Suite 2008" for building my DLL. The created VI works fine on the programming PC. I also include all my DLLs in the Installer but I can't start it on a target PC after the installation. I just receive an error message like:

"Fehlende Externe Funktion RawDataRGB.dll:RawDataRGB:C in VI RawAverageShutter.vi."

( Missing external function DLLName.dll: DLLName:C in VI VIName.vi. )

After the installation of the Microsoft C++ Development Suite it works but I don't want to install that on the target PC, in my opinion it should be also run without it.

Message Edited by Steimers on 09-04-2008 07:51 AM

This is an old post but I stumbled over it. For reference to anyone else that might find this post:

 

You need to install the distributalbe C Runtime library that comes with your development environment. The exact location of that installer is dependent on the Development environment and version.

 

Since VIsual Studio 2003 or 2005 you can not assume that a target computer has the correct C runtime already installed, since Microsoft introduced SxS (Side by Side) DLLs to help circumvent DLL hell, by creating a distribution hell. This means that your DLL will require the exact same C Runtime versiont to be installed on the target machine, that was delivered with your Visual Studio Development environment. Its not enough that there is a MSVC 8.0 runtime on the computer (for VS 2005) but it needs to be the exact 8.0.x.yyy version or the DLL loader will complain. So if you happen to include self written DLLs in your LabVIEW application you have to make sure that the distributable Microsoft C Runtime Installer is also executed when installing your LabVIEW application on a target machine. And it's not legal to distribute the Debug runtime libraries, so the DLL you want to distribute needs to be compiled for Release.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 14 of 14
(643 Views)