C++ Compilers

Background (since my 1st post)
I started programming before C or C++ even existed. This was back in the old punch card days where we used to have to read the holes in the cards as well as dumps to figure out errors.

I've know several different computer languages and to date my preference has been VB5/6 because of the English syntax, VB's handling of Memory, and the ability to do most anything in VB5/6 using the API.

I went with Microsoft in the early days -- instead of Apple -- because of the backward compatibility and open architecture Microsoft offered.

Unfortuantely Microsoft management deprecated VB5/6, I don't care for NET, so believe C++ is the answer to my programming requirements.

I'm currently in the process of wrting a parser to convert my VB5/6 programs to C++. This is helping greatly to memorize C++ syntax as well as some of its constructs.

In reading and researching I found almost all C++ books address the language itself (e.g. Variables, structures, type casting, pointers, etc.). I feel fairly comfortable in this area. What these books don't address, or skim over, is the fact that C++ "appears to be" compiler dependent.

Since I been involved in the Microsoft realm for these many years, I'm Not familiar with the Open Source community. SO:

====== My Questions =========================

Is an Open Source C++ compiler as well supported as Microsofts C++ Compiler?

That is:
1) Under Microsoft, if I needed to look up an API, I would go to MSDN to obtain its call format and the header file used with that API. Is this documenation available for Open Source and where do I get it?
2) Is the source code available for Open Source libraries?
3) Microsoft has "Common Controls. Do "Open Source" libraries have "Common Controls" or libraries --- Or -- do I need to code my own (e.g. textbox, listbox, etc.)?
4) I do Cross Process calling to pass data between processes. Does Open Source support this?
5) My understanding C++ has limited support for graphics (GDI). Is there a free graphics library available as well as the souce code for it?

This should get me started.

Thanks for any responses.
David









Last edited on
1. Far too many places to list. This site (cplusplus.com) has fairly good documentation for most of the standard C/C++ functions and classes. Any search engine should be able to find some documentation for these functions within the first few results.

2. Yes.

3. Actually when talking about "Common Controls" you're talking more about .net language than C/C++. Neither C nor C++ have "standard" GUI libraries, although if you stick to Windows you should be able to use the Windows API calls if you so desire.

4. Yes.

5. C++ doesn't have any "standard" support for graphics, although there are many many frameworks available, many free.

jlb: Thanks for your time and responses.

Re #3:

Base on your response, it appears that in order to implement both a Windows type GUI and associated controls, I will have to stick with Microsoft's compiler. I would of thought some version of Linux might have a a library of comparable controls as well as a graphics library.
Not sure Linux is even considered Open Source since there are so many flavors of it -- some with a $$$ cost I believe?

Base on your response, it appears that in order to implement b I would of thought some version of Linux might have a a library of comparable controls as well as a graphics library.oth a Windows type GUI and associated controls, I will have to stick with Microsoft's compiler.

No, there are frameworks that don't rely on one compiler or another. What I was saying if you want a "standard" solution on Windows you would probably be better off with one of the .net languages, ie. C#.

I would of thought some version of Linux might have a a library of comparable controls as well as a graphics library.

All of your questions seemed Windows based, so I didn't mention Linux. There are GUI frameworks that you can use that are available for Windows, Linux, or Mac, but they are not part of the C/C++ standard language.
Hi,

The links found here maybe helpful:

http://en.cppreference.com/w/cpp/links/libs

In the GUI section, there is Qt which I personally like - it seems to have everything.

The entire cppreference site is very useful :+)

Edit:

Speaking of compilers, do you have clang? llvm has some other useful tools too. http://clang.llvm.org/

Some other links:

https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html#main

Last edited on
> it appears that in order to implement both a Windows type GUI and associated controls,
> I will have to stick with Microsoft's compiler.

No. To implement both a 'Windows type GUI and associated controls', the only requirement is that you stick with Windows. Non-Microsoft compilers on Windows do support Windows GUI development, though Microsoft's Visual Studio is still the best choice for such programs.


> some version of Linux might have a a library of comparable controls as well as a graphics library.

Yes. Comparable, many of them are feature-rich, but the look-and-feel would be somewhat different from a 'Windows type GUI'.


> Not sure Linux is even considered Open Source

The Linux kernel and the GNU libraries are open source (anyone can see the source code), gratis (one does not have to pay money to use it). It is also called "free", though it has a license that imposes restrictions on how it can be used.


> Is an Open Source C++ compiler as well supported as Microsofts C++ Compiler?

They are quite well supported - several bugs are fixed and features are added with each new release, and there are frequent releases.


> Under Microsoft, if I needed to look up an API, I would go to MSDN to obtain its call format
> and the header file used with that API. Is this documenation available for Open Source

Depends on the specific open source software; the quality of open source documentation varies widely.

No, there are frameworks that don't rely on one compiler or another. What I was saying if you want a "standard" solution on Windows you would probably be better off with one of the .net languages, ie. C#.


While M$ is consistent and docs good, my biggest issue is they deprecate stuff at whim.
Who know how long NET will be around. As I see it Open Source has similar issues
(links may disappear) as well as documentation consistency, but if I have the library source I can at least continue using it.

It would be great if the Open Source community could get together (don't know who would do this) and come up with one library for each area of interest. Kinda like a Wiki C++, where everyone contributes and the best is keep for everyones use. Guess to much to hope for.

I did find "A list of open source C++ libraries" @ http://en.cppreference.com/w/cpp/links/libs, so helps alot seeing what may be readily available.


All of your questions seemed Windows based


That's because I've been primarily using M$ and VB the last 20+ years. Hence my frame of reference is M$ oriented. I have VC 6.0 but again M$ has deprecated it.


GUI frameworks ..... not part of the C/C++ standard language


Any link you can provide me that identifies what "is" part of the C/C++ standard language?
Last edited on
'The interface of C++ standard library is defined by the following collection of header files.':
http://en.cppreference.com/w/cpp/header
Thanks everyone for your feedback and links. This should get me going once I research some of this.
Topic archived. No new replies allowed.