03-20-2008 03:13 PM
03-24-2008 08:34 AM
03-24-2008 05:28 PM
03-26-2008 03:12 PM
Kevin,
It looks like the reason we get this error in CVI 8.5 is that the linking checks instituted in 8.5 are much more strict than 8.1 and prior. The functions in labview.lib are not fully supported in Real-Time environments (they contain Windows-specific code) so that is why we now throw this error to make the user aware that they are calling into a library that contains unsupported functions. In this case the MessageBoxA and LoadStringA are two particular culprits that PharLap doesn't support. We have a Corrective Action Request filed internally here to help correct this issue, but there is not a permanent fix currently. The CAR# is 45614 so if you want to check on its status in the future you can call in to NI support for that information.
Considering all of this, we need to figure out what course of action we want to take. If we are deploying to RT, we can figure out what functions call into this library try to remove them since we are no longer able to port them to RT. If they are necessary functions we might try to find some workaround to this issue but there is not pre-existing solution for this path. Also, if it worked in 8.1 we might also be able to use the older version of CVI for now until this issue does have a more solid resolution. Could you possibly give me a little more information about this DLL and how its being used and then we might be able to work around this.
03-27-2008 08:02 AM
John,
We link to labview.lib in order to use the NumericArrayResize function. The dll was developed to execute on both RT and Windows. When executing in the Windows enviroment we pass alot of data back to the calling VI for debugging and status. For our RT applications which use the dll, there are streamlined functions which do not use NumericArrayResize, we have added some conditional disable structures in the VIs which call the dll to determine which method to call. I think that I can change the dll to dynamically link to the dll (instead of statically linking) and then use function pointers to call the NumericArrayResize method or create a seperate dll for my RT applications and again use the conditional disable structures within the calling VIs. Not sure if you have any other suggestions? The other possiblity is to just reinstall CVI 8.1 and use it to compile. Can I have 2 copies of CVI installed on my machine? Are there any installation issues that I should be aware of if I decide to go back and reinstall the older version of CVI
Thanks,
Kevin C.
03-27-2008 05:03 PM
03-31-2008 07:43 AM
Hi Jonathan,
I tried removing user32_lvrt.lib and then recompiling and I get linker errors related to that lib. For example failed to open external module, abort load of external library, and undefined symbols for the functions that are in that lib. Is there some other setting that I a missing that needs to be disabled?
Thanks,
Kevin C.
03-31-2008 08:43 AM