Faik, it all depends on what you actually want to code for. For example, if
you are wanting to write games such as with Microsoft's DirectX then you should
probably get VC++. This would give you the MFC libraries - which are an
encapsulation of the windows SDK to make it easier to code for windows, not a
complete replacement for the ISO/ANSI C++ libraries, streams and ADTs. The
DirectX SDK assumes you have VC++ with MFC so if you consider yourself a
novice, this would be a good place to go.
If you are wanting to code for other Operation Systems such as Linux and BeOS
then you should either get a copy of GNU's Compiler Collection (gcc comes
generically with a C/C++/Objective C compiler) this would give you maximum
cross-platform scope with some ANSI support. If you are still coding for
MS-DOS and want a way to port software between MS-DOS (djgpp), Linux
(gcc-linux) and BeOS (gcc) which all support the FSF compiler. Not to mention,
you may be able to help develop cross-platform products which will probably be
a requirement for good software engineers in the future as in the past.
If on the other hand, you want a high quality implementation of the
ANSI C++ STL, iostreams, etc., the Borland C++ compiler set is a very good
choice. It allows you to write with a good IDE. I am unaware of the use of
the CBuilder features other then in fasttracking Windows apps, but Borland's
equivalent to the MFC, the ObjectWindows library, has been abandoned so you
will probably use MFC in this compiler too (Borland C++ v5 supported both).
To handle Windows programming, your best bet is to get a copy of the Windows
API SDK within Microsoft's Platform SDK. This will give you an insight into
how Windows was constructed and thus how to write software using both C and
C++. You will be able to see the hybrid pre-emtive / cooperative nature of
Windows 9x which will does not exist in NT/2000.
If anything,
Good luck, but you need to do a lot of work to make the BeOS team....
firey_octane
> If on the other hand, you want a high quality implementation of the
> ANSI C++ STL, iostreams, etc., the Borland C++ compiler set is a very good
> choice. It allows you to write with a good IDE. I am unaware of the use of
> the CBuilder features other then in fasttracking Windows apps, but Borland's
> equivalent to the MFC, the ObjectWindows library, has been abandoned so you
> will probably use MFC in this compiler too (Borland C++ v5 supported both).
Not to get into a compiler RWAR but I thought I'd clarify a couple of things.
Borland C++ Builder comes with MFC compatibility, so you can make MFC type apps if
you'd like. However, the "native" GUI components used in BCB apps are VCL (Visual
Component Library) parts. These are shared with the Delphi VCL. This gives you
immediate access to all the Delphi component libs out there too. Even just the VCL
components that come with BCB are, IMHO, very good, cover most anything you'd need
to do, and are more extensive than the component lib you get with VC++ 6.0.
As for "fasttracking" windows apps, again, just MHO but BCB is far easier to work
with. Much more R in RAD... ;-) If you're new to Windows programming you'll
probably find it easier to work with Borland VCL components than MFC.
> [stuff deleted for brevity]
> To handle Windows programming, your best bet is to get a copy of the Windows
> API SDK within Microsoft's Platform SDK. This will give you an insight into
> how Windows was constructed and thus how to write software using both C and
> C++. You will be able to see the hybrid pre-emtive / cooperative nature of
> Windows 9x which will does not exist in NT/2000.
I wasn't aware that you could not "yield" in NT/2000. The documentation
still says you can a-la Sleep( 0 ); in fact that's how it was implemented
in 9X too.
Michael
Must be a different DOS than I remember :)
> I was using Borland Pascal and having fun with it.
So get Delphi and have fun with it now.
> But when it comes to windows programming it gets complicated. API s and Dll
> s ec.
Unlike FAR pointers, overflowing DGROUPs, manually setting the video
mode, directly writing to video RAM, etc? :) It's just different,
not complicated.
> i understand that microsoft created its own classes that are different from
> the standart, of course. If i start to learn Visual c++.
> Then will i be able to say i know c++ in the future?
It depends on what you learn. If you learn Standard C++ with VC++, you
will be a "C++" programmer, but if all you learn is VC++ you will not
be able to program in other environments, but for all I know you may
never need to.
> and if i study borland c++ it will be diffucult to write windows programs?
It will be easier, but you must have your goal in mind: is it to write
software or get a corporate job programming? You will have to use
different tools and learn different things depending on your goals.
> i decided to buy The C++ Programming Language 3rd ed by B Stroustrup to
> start....
> will it be enough to understand visual c++ or borland c++ by just looking
> their classes' or thousands of mfc's commands.
You need to walk before you can run: learn basic C++ syntax and then
some OO programming skills, then the STL, then maybe some basic Windows,
and then a Windows class library. You can also work backwards: plunge
into C++ Builder or Delphi, learn how to do the high-level stuff, and
work backwards as-needed. This is not something you'll master
in a weekend.
Scott