C++
--
Questions
--
Followers
Top Experts
Zero AI Policy
We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.
Anyway when you need to choose between two different GUI libraries first of all you need to consider:
1) What development environment you have already haven ?
2) What is easier to learn ?
3) Where it is easier to get support if you will need ?
It is interesting to note that both VCL and MFC have many followers. It is probable that you would find many resource to many things you can use with the resource.
Another thing to note is that with the borland's CLX library (I think that's wat it is called, can't really remember), it is cross-platform compatible, and that makes it a very much desirable feature indeed. furthermore with the opensourcing of the CLX library with OpenCLX, you can expect more developers to prefer the borland's way...






EARN REWARDS FOR ASKING, ANSWERING, AND MORE.
Earn free swag for participating on the platform.
until a year ago, i would have answered borland, but with the introduction of c#, the distinction is not that clear anymore. still, borland's product is very mature in terms of gui development and thus i would still prefer delphi or c++builder for complex and fast gui development needs for at least another year or so. but, it's also a good idea so start experimenting with c#
clx is really good and will allow you to develop cross-platform code under linux and windows. it's highly compatible with vcl, too. thus, you might want to stick with vcl if you think there might be a possibility to port your code to linux in the future... then, switching to clx would be a breeze if the need should arise ( or, you can start using clx right away but the component support for vcl is a lot more )
hey, that's my name!

Get a FREE t-shirt when you ask your first question.
We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.
.net is pretty powerful but i was mainly talking about gui-building ( as the topic was "vcl vs. mfc" ). up until c#, the only decent gui-building tool that ms had was vb. majority of the times people would write vb front-ends and c++ back-ends, which is not a terrible thing but not very convenient either
during those old times, the advantage of borland and thus vcl was to allow the programmer to use a single powerful ide to develop gui-based software. delphi and c++ builder are both very powerful tools, a lot better than vb. using delphi or c++ builder, i can developed a very slick looking, stable gui in just a matter of days. sure, you can do the same thing with vb too but we would all agree that vb is a weird programming language ( oh well, at least that's what i think and i did use vb for quite some time )
anyway, with .net, microsoft introduced "windows forms", which is only available to vb and c#. vb will probably still continue to be an important player for a couple of more years but with this new approach, c++ people can jump on the rad vagon, too ( rad = rapid application development ); which was something only borland people enjoyed for many years ( okay, there are other rad tools around but borland's was the most popular )
in other words, c# is the gateway for c++ people to enjoy vb-like gui-building facilities. in fact, windows forms is much better than the old vb approach. it's comparable to vcl and probably exceeds it in terms of features and performance ( i didn't really had a very detailed look at windows forms so i don't know for sure )
in fact, now that i think of it, imho the answer to the "vcl or mfc?" question is "windows forms" ;-)
p.s.: just fyi, you can actually use windows forms from c++ if you stick with microsoft's "managed c++" but even than, not in the visual mode, i.e. you can't use the visual designers, etc. which is what rad is all about to start with...
with the introduction of "windows forms" to C#, is there any particular reason not to introduce it to C++ also?
it appears to me that they did not include it in C++ so that more people may switch to C#. but i could be wrong...
from what you sound, it seems that "windows forms" is only a form of a tool, and not a library. so it doesn't really makes a difference, only the tool improves, the code does not.
how does "windows forms" improve vb? vb is already uses gui-building... i would be interested to find out this point.
also, though C++ builder and delphi are famous for their gui building capability, the real reason is not because of the tools. The tools while very good can only serves so much if the library is not. For VCL and CLX, it need not be used with the tools (just like MFC). You could also simply build up a gui app with vcl or clx writing the source code yourself.
and the reason why it is so successful is that even writing the code yourself is easy. that means you can easily build up a gui without the tools borland gives you (the ide that is). This is the same case for MFC. Remember tools are only secondary, you can always write new tools for the library, but if the library is not good enough, nothing you do to the tool will be of much help.
generally, vcl and clx are better supported by the large fan base it has. this probably have something to do with the price at which ms sells VC...
a dialog editor is a lot different then a rad tool
> "with the introduction of "windows forms" to C#, is there any particular reason not to introduce it to C++ also? it appears to me that they did not include it in C++ so that more people may switch to C#. but i could be wrong..."
c++ is a very complex language. borland managed to pull c++ builder by introducing additional keywords to c++. microsoft probably figured it doesn't worth it. using another tool for gui-building has been the visual c++ way for years so they probably thought it wouldn't make much difference anyway
plus, microsoft's real aim is to convince people start using .net. if they could put windows forms in c++ within a reasonable amount of time and effort, they would do that 'cause that would mean directly attracting c++ people instead of trying to entice them via a c++-like language
> "from what you sound, it seems that "windows forms" is only a form of a tool, and not a library. so it doesn't really makes a difference, only the tool improves, the code does not. ... how does "windows forms" improve vb? vb is already uses gui-building... i would be interested to find out this point."
i suggest reading about a topic before commenting on it, rather than trying to infer information from a short post. please see
http://msdn.microsoft.com/msdnmag/issues/01/02/winforms/default.aspx
and
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/actxvnetcontrols.asp
for more information. let me quote a couple of sentences from the second article for your convenience,
"Microsoft .NET controls are very different internally from Microsoft ActiveX controls in that .NET controls are created from a hierarchy of other classes" ... "When you start to create user interfaces with .NET, you will find that many of the controls that you knew in Microsoft Visual Basic 6.0 are gone or have been renamed" ... " There have been a lot of changes to how you create user interfaces in .NET. Some of the controls that you have used before are gone, or are very different"
...
and, for the rest of your post:
i agree that library is important but in today's world, the tool is actually a lot more important. if you wanted to write a gui using delphi without using the ide, it would take almost as much time as developing it under mfc. in fact, even if you are using the ide, sometimes delphi might take longer, especially if you are doing something complex. in such a case, you would eventually need to revert to windows api or mfc at one point 'cause, as you probably know, vcl does not encapsulate all windows facilities. when that happens, you find yourself in an alien environment 'cause vcl hides a lot of details from the user and when the time comes to get your hands dirty, you are simply not prepared
now, don't get me wrong. i love delphi and c++ builder. i did heavy development using them ( see my profile ) but i also know there is a reason why vb and delphi are considered rad tools while vc is not and why there are so many vb developers out there while delphi's support is not even half
...
oh, one more thing, please see
http://community.borland.com/article/0,1410,29320,00.html
for a quick preview on delphi for .net. in the last part of this article, written by bob swart ( a.k.a. the famous dr. bob ), you can find information about how to convert vcl applications to windows forms applications. here is dr. bob's conclusion quoted, for your convenience,
"In this article, I've shown how to migrate a VCL application (the game of Memory) to VCL for .NET, as well as to WinForms on .NET, all using the Delphi for .NET Preview command-line compiler (Update 1). The steps to migrate a VCL application to VCL for .NET are less time consuming than migrating from VCL to WinForms. The pure WinForms application is smaller, however, and runs a bit faster.
In my personal view, VCL for .NET is a good way to quickly migrate VCL applications to .NET, but for new (native) .NET development, I probably won't be using VCL for .NET"






EARN REWARDS FOR ASKING, ANSWERING, AND MORE.
Earn free swag for participating on the platform.
please see the first article url i sent for more information ( which is from microsoft's own msdn journal ). here is a relevant quote from the summary section of that article,
"To write GUI applications for Microsoft .NET you'll use Windows Forms. Windows Forms are a new style of application built around classes in the .NET Framework class library's System.WinForms namespace. They have a programming model all their own that is cleaner, more robust, and more consistent than models based on the Win32 API or MFC..."

Get a FREE t-shirt when you ask your first question.
We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.
and, if we come back to the original question of hahan, my suggestion holds: if you are sure you are not going to port the application, then go with winforms ( as borland will be spitting out .net products in the near future, it doesn't matter which tool you use ). if you might want to port the app to linux, go with borland delphi/kylix and use clx. if absolute platform-independence is important, prefer wxwindows ( or qt )






EARN REWARDS FOR ASKING, ANSWERING, AND MORE.
Earn free swag for participating on the platform.
You can always request to keep this question open. But remember, experts can only help if you provide feedback to their comments.
Unless there is objection or further activity, I will suggest to accept
"CoolBreeze"
comment(s) as an answer.
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
========
Werner
C++
--
Questions
--
Followers
Top Experts
C++ is an intermediate-level general-purpose programming language, not to be confused with C or C#. It was developed as a set of extensions to the C programming language to improve type-safety and add support for automatic resource management, object-orientation, generic programming, and exception handling, among other features.