Home > Community > Discussion Forums

LabWindows/CVI Idea Exchange

Showing results for 
Search instead for 
Do you mean 
The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea

In principle CVI supports external compilers for an optimized release version such as Intel's ICL and I managed to successfully compile release versions using ICL 11.1.


However, documentation on this issue is sparse.


It is even worse if one attempts to use an external linker which might be appropriate if one attempts to use e.g. Intel's MKL. Here I would love to see the support of external linkers in combination with an improved documentation.


Similarly, CUDA is becoming more attractive for more demanding floating point applications - I would consider it very useful if NI could provide e.g. an application note of how to do this in an easy to follow tutorial.

Status: Declined
Documenting the intricacies of third-party compilers is a pretty difficult task, since things are always liable to change without NI necessarily being aware of it, and the complexity of some of the compilers could easily overwhelm NI's ability to document them properly. As far as linkers are concerned, there is way too much CVI-specific work that the built-in linker must do. Therefore, it is very unlikely that CVI could ever support third-party linkers.

It has been discussed a few times in this forum, but so far it is impossible to 'know' when the mouse cursor is above a certain menu item. This information might be used for example to display some context help.


Hence I would suggest that using the menu callback of the respective menu item it should be possible to be notified about the mouse cursor position once it is over the area of the respective menu entry, e.g. by providing a MOUSE_OVER_MENU_ITEM event.

Status: New

I do like the improved editor features of CVI2013; maybe two toolbar icons could be added for the two new commands  'Goto Next Function' / 'Goto Previous Function' ?

Be able in CVI to deploy code to a Compact RIO for execution. This would allow Compact RIO users to use C code from a Linux LabVIEW.

Right now, it is possible to add a readme file to the distribution (Build / Distribution / Edit...). Unfortunately, the file type of a readme file (and the license agreement file) is limited to *.rtf. 


It might be useful to distribute a more 'complex' readme file, e.g. including figures. Hence I would prefer to distribute readme.pdf instead of readme.rtf




a long standing issue with the function GetGlobalMouseState is that it does not detect the <alt> key modifier (contrary to the documentation).


I'd like to suggest adding the capabilities to detect the key modifiers


  • <alt>
  • <shift> + <alt>
  • <ctrl> + <alt>

Of course this can be done with the Win32 function GetKeyboardState, and this is how I do it right now, but this means that I have to include <windows.h>.



Currently, it is only possible to load XML for parsing from an xml file.  In order to load xml data from a string, it is necessary to either write to a temporary file, or use the MSXML library directly.  It would be fairly simple to modify the CVIXMLLoadDocument() Function (or create a new function) which uses the MSXML IXMLDOMDocumentloadXML() function, which allows loading XML directly from a string. 


Adding this code to the current function after the IXMLDOMDocumentload() function would improve the CVIXMLLoadDocument() function so that it tries opening the input string as direct XML if it is not a path (Replaces line 167):


__caErrChk(MSXML_IXMLDOMDocumentload(xmlHdl, NULL, variantPath, &success));
	if(!success) //if loading as a path fails, try reading as direct XML code
        __caErrChk(MSXML_IXMLDOMDocumentloadXML(xmlHdl, NULL, fullPath, &success));    

I use SavePanelState and RecallPanelState all the time but it give me error when I add/change existing control. I would like to request save and recall only one control that way I don't have to worry about other controls which I am not interested in.

Status: Under Consideration
That's a good point. I was probably too rash in declining this suggestion.

CVI & LabVIEW UI Builder

Status: New
by Active Participant msaxon on ‎01-09-2012 07:18 AM

It seems to me that it would be really neat if CVI were able to support publishing/acceptance of XML data in the format required by LabVIEW UI Builder. The idea of LabVIEW UI Builder thin clients with a CVI server is quite appealing.

Add an ATTR_COLUMN_PROPORTION (tree or table control) column attribute to set the width of a column in percent.

A second attribute could be added, to maintain column width proportions, in case the user is resizing the columns.

Shortcut for Collapse All and Expand All

Status: New
by Member Harvster on ‎07-03-2013 12:05 PM

When writing a large amount of functions for CVI, I use the View>> Collapse All / Expand All options quit a lot.  It would be incredibly useful to have a keyboard shortcut to do this. 


That's all, but I can't stress how much I use these menu items and how incredibly helpful it would be to have a shortcut.  All of my coworkers agree.  Thanks.

We use the our development and target installation PC's to support both new and legacy projects that were developed under earlier versions of IVI Compliance.  As the only current way to change IVI versions is to uninstall and re-install, we are stuck using the earliest one as a common denominator.   With hundreds of old projects to re-compile, frequent across-the-board updates are not possible.  Newer versions of instrument drivers such as HSDIO are only compatible with later versions of IVI. 


I would like to have a reasonably easy way to switch IVI versions, so we can support both old and new code from our development PCs.  Even a batch file and some registry edit instructions would be better than the way it is now.  However, that would limit its use in a secure environment where the users don't have general admin privileges.


From an NI business perspective, this may be blocking customers from purchasing upgrades or new NI products.

add new plot styles providing error bars

Status: New
by Trusted Enthusiast on ‎10-20-2011 09:51 AM



I see no easy way to plot data in a scatter plot including their error bars...


Hence I suggest adding plot types such as



If this desire gets accomplished, it would also make sense to add some related attributes, specifying the size, type, and color of the error bar.



Browse any <file>.c, by right-click on a file in project view file list.

In Window "Source Code Browser/View" Browse Identifier:
Allow to copy entries in column 'Functions' and other columns, if useful.


This would help to create a content list in <file>.c or any other documentation.

Copy full columns or line by line might be useful.

I discovered through trial and error that the CNVCreateBufferedWriter function, while it does provide buffering when necessary to preserve data until it can be written within a process, it does not provide for arbitration between writes originating from multiple processes.  Stated another way:  As far as I am aware, a single Network Variable process is not designed be written to by more than one application.


The documentation was not clear on this point.  It states “You can buffer data to be written to the network variable by calling CNVPutDataInBuffer. The system automatically writes the buffered data to the network variable.”  This suggested to me that arbitration of some kind existed to handle asynchronous writes by multiple applications.  I confess, my interpretation may have been driven by wishful thinking to support my application needs.


Nevertheless, my suggestion is that future versions of this library include a capability to arbitrate asynchronous writes from multiple applications to a single network variable.  i.e., that two, or three, or more applications can successfully connect to and write to the same network variable.

Include a function to programmatically re-start the NI Variable Engine if it is found to be stopped.

Although the NV libraries include a function to detect whether the NI Varible Engine service is running, there is no function included in the library to facilitate re-starting the NI Variable Engine service. 

For those The method that I am aware of to restart this service is to use the ANSI C system() function with an embedded command line:



Index = 0;                                           


while((!running) && (index++ < 5))


System(“net start \"NI Variable Engine\"");




if(!running) return -1;


Learning this required some time spent on the web, looking through old posts on how to solve the same problem in LabView.  Rather than spending that time, it would have been more productive to just pull it out of the library.

Improved Source Code Control

Status: New
by Member ptb_nmK on ‎05-01-2013 02:38 PM

Hello everybody,

I tried to use a source code / version control for projects in which I  use LabWindows and Visual Studio.

One possible solution would be to implement support for the team foundation server, which already has be added to LabView.

Another would to provide an independent solution.


Best regards,

Why does the numeric lab style have ATTR_FRAME_COLOR but not string, list box and text box?

It always seemed inconsistent to me.

Auto-Complete function

Status: New
by Member fishingman on ‎08-08-2011 09:29 AM


The idea is to automatically add the Auto-Complete function. that is, when you type the beginning of a function, the development interface  provides a set of functions. This option is present in most development software and facilitates the development too.


Distribution Kit Enhancement.

Status: New
by Member JGC on ‎04-08-2013 07:13 AM

It would be helpful if the distribution kit had three additional options;


  1. Compress all of the files and subfolders into a single *.zip file.
  2. An option to convert the *.zip to a self extracting archive (SEA) file *.exe.
  3. An option to automatically run "Setup.exe" after completing the file extraction from the SEA.

Option 3 is only available if option 2 is selected and option 2 is only available if option 1 is selected.


The above can be done with external tools and is helpful when distributing via a web-download, Dropbox or another internet based system. Installation for the end user is then simply a case of clicking a single link and running a single file. After that they are prompted by the usual installation dialog.

About LabWindows/CVI Idea Exchange

Do you have a feature idea for how to improve LabWindows/CVI? Submit and vote on ideas now!
  1. Browse by label or search in the LabWindows/CVI Idea Exchange to see if your idea has previously been submitted. If your idea exists, be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click New Idea to submit a product idea. You should submit a separate post for each idea. Watch as the community gives your idea kudos and adds their input.
  3. Give kudos to other ideas that you would like to see implemented!
  4. NI R&D will review ideas that have been submitted and update the status.

Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.

The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.