LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Running DLL compiled in LV 2009 in newer LabView leads to Memory Manager.cpp 547 error

Hello,

 

I'm using LabVIEW 2009 and have built several years ago a DLL with this LV version.

 

However, when this DLL is called in a LabVIEW version newer than 2014 it leads often to a problems and errors.

The most typical error is the MemoryManager.cpp, line 547.

 

Do you have any suggestions what to do or how to compile this DLL with LabVIEW 2009 for running also with the newest LabVIEW versions?

 

Greetings

0 Kudos
Message 1 of 11
(2,475 Views)

Compile it with LabVIEW 2014.  You do know, I presume, that LabVIEW code is version-specific -- if you open a VI that was developed in 2009 using LabVIEW 2014, and executed it or saved it, it would be re-compiled to a LabVIEW 2014 version and could no longer be opened with LabVIEW 2009.  By using an "old" DLL, you are, in effect, trying to force LabVIEW to execute code designed for a different Run Time Engine (at the very least).

 

Bob Schor

0 Kudos
Message 2 of 11
(2,452 Views)

Hi Bob,

 

I have only a LabVIEW 2009 version. The higher LabVIEW versions are on customer's site.

Thus compiling with LabVIEW 2014 is not possible for me.

The respective LabVIEW Run-Time Engine 2009, is also installated on their computers, even running a newer LabVIEW version.

 

Do you have other suggestions?

0 Kudos
Message 3 of 11
(2,451 Views)

Are you delivering a LabVIEW executable (i.e. Main.exe instead of Main.vi) to your customer who has both the LabVIEW 2009 and LabVIEW 2014 Run Time Engines?

 

If you are giving your customer LabVIEW code (meaning .VI files), it will be forced to run with the LabVIEW 2014 RTE (as the customer's LabVIEW 2014 will be compiling and executing the code), so may well require the DLL to be 2014-compatible.

 

Bob Schor

0 Kudos
Message 4 of 11
(2,447 Views)

It's not possible for a built LabVIEW executable or DLL to run using the wrong run-time libraries, is it? I would think that an application built with LV2009 would have to use the appropriate run-time or it just wouldn't execute, and the original question seems pretty clearly about a DLL, not a VI.

0 Kudos
Message 5 of 11
(2,446 Views)

Hi,

 

The DLL includes several functions I built for communication with a specific hardware.

The customer gets from me an installer, which installs him the LV RTE 2009 and the standard user interface software, which is an exe-file but the communication within this exe-file is not based on the dll. Thus, 1) running the exe on his PC is not a problem, and 2) the correct LV RTE 2009 is always installed then on the PC.

 

Furthermore the customer gets also the mentioned DLL together with an demonstration VI (everything built in LV 2009, like the above mentioned exe).

Now, when he opens this demonstration VI (including the DLL calls) with LV 2014 or higher, he gets the mentioned error.

The error occurs even if he program his own VI which calls my provided DLL.

Thats my problem: How to resolve the error. LabVIEW 2009 is totaly sufficient for my purposes and I do not want to buy a new LV version only for resolving this error....

 

Thanks.

0 Kudos
Message 6 of 11
(2,439 Views)

no ideas?

0 Kudos
Message 7 of 11
(2,418 Views)

This is very strange since according to this, a 2009 executable should only run on the 2009 run time, so other run times shouldn't matter.

 

So do you believe that the DLL is being run under the LV RTE 2014 even though 2009 is installed and it is compiled for 2009? I haven't tried this, but there are ways to tell which version is being run. See this forum post: https://forums.ni.com/t5/LabVIEW/Determine-which-Run-Time-Engine-is-required-for-an-executable/td-p/...

 

 

Also, it isn't a problem with bitness is it? 32-bit vs 64-bit?

 

Could it be the installation is corrupted? Could there be a bug in the DLL causing the issue that only shows up on a different machine with different hardware? Could it be an old bug with Labview for 8 years ago?

0 Kudos
Message 8 of 11
(2,412 Views)

Bob suggested that the LV2009 DLL was using the LV2014 run-time, but I don't believe that's possible or that we've seen any indication that that's what's happening.

0 Kudos
Message 9 of 11
(2,407 Views)

Hi,

 

there is no problem with the exe. The problem is only with the DLL.

Is it possible to force somehow the use of the RTE 2009 even if LabVIEW version is a higher one? Or is this done automatically?

(The RTE2009 is of course installed).

 

0 Kudos
Message 10 of 11
(2,392 Views)