Solved

C++ Builder / Visual C++

Posted on 1998-11-30
12
418 Views
Last Modified: 2013-12-14
I currently use C++ and the OWL.  However, I wish to start using either C++ Builder or Visual C++.

Which one is preferable? and are there any books that would be of use?

Further, how easy is it to integrate classes etc.. that have been written in C++ into a Builder or Visual program??  Is this the best way to go about it, or just program direct from the Builder or Visual environment?
0
Comment
Question by:Greystoke
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
  • 2
12 Comments
 
LVL 22

Accepted Solution

by:
nietod earned 70 total points
ID: 1178910
The vast majority of C++ windows programs are written using MFC on Visual C++.  There are many advantages to this over OWL and VCL.  It is easier to get support for MFC (more people use it).  It is better documented and has more features (lots more money goes into supporting MFC.).  On the downside, MFC is harder to use than OWL or VCL (builder's framework).  MFC is a very thin wrapper around the windows API.  Most of the mistakes you could make in windows API calls you can still make using MFC.  OWL and VCL, however, are much thicker wrappers.  They will tend to help you avoid problems more than MFC.

The choice really depends on what you are most comforatable with and what you need.  MFC will produce apps that are more "standard" and more feature rich (at least more easily).  You can get support here if you run into problems.  but you are more likely to run into those problems.  OWL or VCL (both can be used from builder) will produce less fancy lower-tech apps.  You will have more trouble getting help if you run into problems, but are less likely to have problems.  

By the way.  There is a huge advantage to VC that is not connected to this.  VC's debugger is a 1000 times better than builder's or BC++'s.  That alone may be a deciding factor.
0
 

Author Comment

by:Greystoke
ID: 1178911
Ok, so you suggest VC due to it's popularity.  However, is the learning curve sufficiently greater for VC to propose Builder, as it uses OWL, as a short term 'stop gap' ?  As I only really have a couple of months to implement a basic structure.

Further, a point I am still not totally clear on.  Take, for example, the 'Model, View, Controller' architecture - when using Builder or VC, do you still code the Model as a standard C++ program, and then produce the Views and Controller from the Visual environment?  Or is it all done from the Visual package?
0
 

Author Comment

by:Greystoke
ID: 1178912
Ok, so you suggest VC due to it's popularity and advanced features.  However, is the learning curve sufficiently greater for VC to propose Builder, as it uses OWL, as a short term 'stop gap' ?  As I only really have a couple of months to implement a basic structure.

Further, a point I am still not totally clear on.  Take, for example, the 'Model, View, Controller' architecture - when using Builder or VC, do you still code the Model as a standard C++ program, and then produce the Views and Controller from the Visual environment?  Or is it all done from the Visual package?
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 22

Expert Comment

by:nietod
ID: 1178913
I don't know that experience with OWL will help you to learn VCL on builder faster.  (Obviously it helps in using OWL on builder.)  I also don't really know how hard it is to learn VCL compared to MFC.  But my intuition (well, and a tiny bit of experience) tells me that VCL is harder to learn.  It is not as well documented as MFC (and, as I said, there is less support).  In addition, another huge advantage to VC that I did not mention is that its on-line help is far superior to BC's.  (For a while I was programming only in BC builder but was using VC's help!)  VC's help is better in the sense that it is better written (more complete, more clear, more examples etc) and that it is a far better help tool (easier to find things, more powerful searches, more links etc.)  

>>As I only really have a couple of months to implement a basic structure
What does your program do?  The basic structure of an MFC program is generated in seconds by the wizard, then you customize it from there.  ideally, you will spend most of your programming time on non-windows related items and a tiny bit of time interfacing that to MFC.  Idealy, but it depends on what you need to get done.  Anyways that is probably equally true (or equally untrue) of OWL or VCL.

I;m not clear in your last question.  What do you mean by the "Model, View, controller" architecture?  I'm not clear on the rest of the question.  Perhaps this might help.  Do you know that the IDEs (both VC and Builder) simpy create ordinary C++ programs.  The "vissual" component is somewhat limited and is really just an "interface" to your source code.  For example they have class viewers that "show" you a class and its members and its relations to base classes etc.  This is created by parsing the source code.  They have features for overiding member functions in a class by selecting the function name from a list.  Again the list is created by reading the source code.  when you add the function it it just adds it the souce code.  You still have to type in the guts to the function as 100% C++.  If you want, you coudl just type in the whole function yourself manually and avoid the "visual" interface.  Lots of programmers do that in MFC.  I don't know about builder.
0
 

Expert Comment

by:migue
ID: 2883038
I agree with most of what nietod wrote, but except one point:

Since VCL is thicker(lots more) wrap over windows api than MFC..VCL is much much easier to learn.

I would use MFC, there are more resources for it. Its funny, I found myself using BCB and VC help also. That was very irritating.
0
 
LVL 22

Expert Comment

by:nietod
ID: 2883096
>> Since VCL is thicker(lots more) wrap over
>> windows api than MFC.
>> VCL is much much easier to learn.
I don't think that is a necessary result of the thicker wrapper.  I do think that VCL (at least fundamentally) is a superior wrapper (perhaps less feature rich), but that does not make it easier to learn.  That probably means it is easier to use, but not necesarily easier to learn.
0
 

Expert Comment

by:migue
ID: 2889396
easier to learn? easier to use ?
Please help me understand...what is the difference ?

How do we measure the degree of superiority of a wrapper ? By how much it hides details ? Its documentation ?

Is it not true that the more it hides the easier it is to use ? (I don;t think so, but would like your opinion)

Sounds like I am defending BCB/VCL, but I an MFC fan. But, interesting enough, just about every time I wanted to do something in MFC..it was almost always easier to do it in VCL.
0
 
LVL 22

Expert Comment

by:nietod
ID: 2890931
Learning is the earlier stage.  i.e first you learn something--possibly as you use it--then once you have learned it, you use it.

BCB's VCL has lots of "convenience" features that make it easier to use.  but you have to learn about them before you can use them.  Since their help is so terrible (in comparisson to VC's) it may be much harder to learn about them.

>> Is it not true that the more it hides the easier it is to use ?
That is oversimplified, but in general that is true.  the key word is "encpasulate", not hide.  The more encapsulates features to make them reliable, and to provide more convenient interfaces to the feature, the easier. But you can certainly do a poor job of encapsulating.  Poor encapsulation might prevent you from accessing certain features you need or it might provide a lot of overhead without providing any additional safety.   For example to create a font in windows requires that you send about 15 parameters.  No one can remember all these parameters--the are aweful.   A good encapsulation will provide an  easer interface for creating fonts, one with less parameters and ones that might be easier to memorize and specify.  A good encapsulation might also insure that the font is always deleted when no longer needed, so you never get GDI memory leaks.  But a bad encapsulation might make it impossible to specify all the variety of font options that the original create font supports.  Or it might not inssure that the font is deleted, so it not a safety at all.

>> I wanted to do something in MFC..it was almost
>> always easier to do it in VCL.
You are not the type of "MFC fan" that gets elected as Microsoft's poster boy.
0
 

Expert Comment

by:migue
ID: 2891339
>Since their help is so terrible (in >comparisson to VC's) it may be much >harder to learn about them.

Agreed.


>the key word is "encpasulate", not hide

Hmm, correct me if I am wrong, but more than one book mentions the phrase 'information hiding'. In fact, a lot of oop/ooa/ood 'starter/novice/intro books throw this term around a lot.BUT, YES YOU ARE RIGHT...should have used encapsulate.

>You are not the type of "MFC fan" that >gets elected as Microsoft's poster boy

True, but like you(sorry for my assumption) I use the tools that help me the most to get my job done...msoft/symantec/borland/sun/ibm/oracle....does not matter to me. You sound like a smart person, and doubt that you would bend for msoft and preach that their tools are the best..c'mon.

0
 
LVL 22

Expert Comment

by:nietod
ID: 2891430
I've seen "information hding" used on occassion too, but it is not widely used.  "encapsulation" is the preferred term.  I think it implies more than "information hiding" and it does not have any negative conotations.

>> doubt that you would bend for msoft and preach
>> that their tools are the best..c'mon
I don't!  I don't think I am here.   I point out that BCB's frame work is in many ways superior to MFC's  (its not clear-cut) and easier to use.  Apparently didn't mention the fact that BCB is far far faster than VC, I usually mention that too.

For my work I use both BCB and VC on the same source.  Two compilers are better at finding mistakes than just one.  And the BCB compiler generates the code in less than 1/10th the time of VC.  But I need VC for its on-line help and debugger.  I don't ever use the BCb help and try to avoid the debugger.
0
 

Expert Comment

by:migue
ID: 2891885
Why does expert exchange not have a BCB
forum ?

>try to avoid the debugger

why ?
0
 
LVL 22

Expert Comment

by:nietod
ID: 2892344
There is a delphi forum, that should cover most VCL-specific issues.   If you want a BCB forum, you should ask customer service.  (I think I would prefer it if it were a VCL in BCB type forum, (like the MFC forum) not a BCB C++ forum.)

I think BCB's debugger is terrible.  Until recetly you coudl not see varaibles higher in the call stack which is eesential--since they are usually the source of the problem.  It is very hard to "explore" complex objects, ones with pointers or refferences, even simple objects like string classes are hard to view.  Until recently they did not have a step out of function option.  VC's debugger is just tons easier to use and more powerful.  BCB is catching up slowly, but its not there.  And BCB doesn't ahve an option to customize function keys--which is really annoying!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
thread-safe code in c++ 2 126
Header Errors LNK2019, LNK1120 - Unresolved Externals 4 307
eclipse compiler vs Installed JREs option 3 119
keep track of class structure 1 50
Article by: SunnyDark
This article's goal is to present you with an easy to use XML wrapper for C++ and also present some interesting techniques that you might use with MS C++. The reason I built this class is to ease the pain of using XML files with C++, since there is…
This article will show you some of the more useful Standard Template Library (STL) algorithms through the use of working examples.  You will learn about how these algorithms fit into the STL architecture, how they work with STL containers, and why t…
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question