03-24-2023 08:17 AM - edited 03-24-2023 08:34 AM
There is an NI library called NI_procmphier.lvib which contains "CMP Compare two VIs.vi" When I use "CMP Compare two VIs.vi" in my project, compile it to an Exe then run it, I get
Error 1043 occurred at an unidentified location
Possible reason(s):
LabVIEW: The property or method is not supported in this version of LabVIEW.
It is an Exe made of single vi with nothing but a call to "CMP Compare two VIs.vi" written in LV 2017 and the runtime is definitely installed. So it made me wonder, is there some reason NI_procmphier.lvib or its functions cannot be included in a runtime executable? "CMP Compare two VIs.vi" is a locked vi, meaning you cant' view its block diagram without the NI password, but that can't be it, we use function from NI libraries all the time.
Solved! Go to Solution.
03-24-2023 11:19 AM
The method that performs the compare is supported in the LabVIEW IDE, but it is not included in the run-time engine. In general, properties and methods in LabVIEW that support development tools in the IDE are not implemented in the run-time engine.
03-24-2023 02:21 PM - edited 03-24-2023 02:23 PM
Thanks Darren. Is there some way to which NI library methods are IDE only? Other than generally, that is.
03-24-2023 02:26 PM
In your case, the method being called is a private method inside a password-protected VI, so there wouldn't be a terribly easy way for you to identify the method as being unavailable in the runtime engine. However, for all public methods, their context help should identify whether or not the method is available in the run-time engine.
Here's a screenshot of the private method inside that password-protected VI. You can see that the method's context help does have this designation:
03-25-2023 08:36 PM
@Darren wrote:
The method that performs the compare is supported in the LabVIEW IDE, but it is not included in the run-time engine. In general, properties and methods in LabVIEW that support development tools in the IDE are not implemented in the run-time engine.
Strictly speaking there is also something called Fully Featured Runtime (lvffrt.dll). Some NI tools use that.
03-26-2023 05:01 PM
Rolf, I purposely didn't bring up the FFRTE because I highly doubt it would help in this situation, or the majority of situations where people have assumed in the past that it could possibly help. 🙂
03-26-2023 05:16 PM
It might theoretically help. But it is a minefield, legally as I have no idea about what license you would actually need for it, technically as it is a pitta to get it installed and used by a tool consistently.
03-31-2023 09:47 AM
Thanks all. In my case, I didn't need an exe because I plan to distribute it, but just out of convenience. I have a file compare app that I use for all non-LabVIEW things. It doesn't have LV hooks so I wanted to create a little exe that could be called when it need to compare two VIs. Since I will only (likely) be doing VI compares while developing, I guess I could create a batch file or other script to launch/communicate with LV development, but really wouldn't know where to begin. I assume LV dev environment must have an "API" or some such way to automated things? I say this because VI Package Manager seems to start up LV if not already started. I have seen that a LV Exe can accept command line parameters, does the LabVIEW.exe accept command line parameters? Would that be the way to do it or is there a better or other recommended way to "make calls" to the LV development?
03-31-2023 09:57 AM
There's already an EXE available that will compare VIs:
03-31-2023 10:45 AM - edited 03-31-2023 11:44 AM
Thanks, but LVCompare can't handle VIs with the same name, even when the paths are different. When LVCompare is used with source control, the source controls takes care of temporarily renaming the file which avoids collision. I am using a compare app, not a source control to do the comparison, so I need to write something that will copy and/or temporarily rename one of the VIs to be compared, then deleted/un-rename it when done. EDIT: And I'd rather do that file copying/renaming in LV than a batch file or other scripting language.