LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

When will CVI support a C++ compiler Natively?

Yes, I know CVI can build objects and load then in VC++6 (which was outdated long ago) Yes I know CVI can import C++ DLL's.
 
So please don't respond to these issues.
 
What i'd like to know is if there are any plans to implement a C++ compiler into Labwindows CVI, I don't see why it would be that hard seeing as C++ should be able to compile any C code so long as it followed the ANSI C standard in the first place.  My issue is some of our developers know C++ and all of them know C, but nobody wants to muck about using a new IDE and all that fun mess, we want to keep it in CVI, we just want a C++ compiler for bi-lingual compatability on our code base.
 
If there are no plans to implement this, an explanation for why this is the case would be appreciated.
0 Kudos
Message 1 of 48
(5,123 Views)
Daniel,

I regret to say that there are currently no plans to turn CVI into a C++ compiler.

I'm going to have to disagree with you and say that, unfortunately, writing a C++ compiler is orders of magnitude more complex than writing a C compiler. Of course, being complex doesn't mean it's impossible. But NI made the calculation several years ago that C++ would not, in and of itself, help that much in satisfying CVI's main goal, and that is to provide engineers with an easy way to write test and measurement applications. Therefore, rather than invest a lot of resources in upgrading the language, those resources were instead put into upgrading the runtime libraries and other features that could be of more immediate use, from the standpoint of pure functionality.

Understandably, there are many engineers who nevertheless prefer to program in C++, for perfectly valid reasons. This is why NI developed the Measurement Studio product, which is included in the Full Development System of CVI. The decision was made that rather than try to re-invent the wheel, it was preferable to leverage a perfectly good C++ compiler and development environment, and extend it with functionality that is targeted for T&M applications. (By the way, it's not just VC++ 6 that CVI and Measurement Studio are compatible with. They are compatible with all the newest versions of Visual Studio).

Luis
NI
0 Kudos
Message 2 of 48
(5,068 Views)
What does CVI provide that measurement studio does not? I'm not too familiar with the product.
0 Kudos
Message 3 of 48
(5,066 Views)
Daniel,

I don't think Measurement Studio is missing all that much, relative to CVI. All the standard libraries are included, and most of them are available as C++ classes (a few of them are only available as a C interface and/or in the native .NET languages).

The only significant limitation I can think of is that if you want to redeploy your application, you'll have to use the Visual Studio deployment tool, which doesn't have native support for the NI components. You can still deploy your application, of course, but you'll have to do more it manually.

Here is a forum thread that does some comparison of the products.

Luis
0 Kudos
Message 4 of 48
(5,031 Views)
Daniel -

How about an incremental improvement to ISO C99 from the C89 they use now?  I've been asking for this for years.

You can also use a decent compiler for release mode - we use the Intel C/C++ compiler for Windows Ver 10.0

Optimizations are top notch in the Intel compiler.  Very little optimization in the CVI compiler, which is the open source LCC compiler from Pricenton University.

Menchar
Message 5 of 48
(5,012 Views)
I second that request !

C99 was defined almost 10 years ago and is still not supported in CVI... and it should not be so difficult to upgrade.
0 Kudos
Message 6 of 48
(4,991 Views)
although the differences aren't that huge in C99 they're enough to make me not pull out hair by the mere anachronism of CVI 🙂  I third this.
0 Kudos
Message 7 of 48
(4,977 Views)
Whew.  I thought I was the only one.  :manhappy:
 
It seems that every time I run down some funky issue with the language, I discover that it's been fixed in C99.   
 
I believe NI had a third party tailor the LCC compiler for CVI, and that same company has a C99 version available.
 
They'd have to re-tailor the LCC to pick up the C99 version.
 
Most of the tailoring is in the debug mode where they have the compiler generate guard code I would think.
 
Menchar
 
0 Kudos
Message 8 of 48
(4,962 Views)

hell, i just want cast constructors... you know how much i hate not being able to say:

for(int i = 0 ; i++; I,100)

{

      ...

}

 

0 Kudos
Message 9 of 48
(4,954 Views)
Amen brother.

Boolean type.  Variable length arrays.  non-constant initializers.  fenv.h.  long long ints. 

Menchar
0 Kudos
Message 10 of 48
(4,947 Views)