PDA

View Full Version : Visual C++ and Borland C++ Builder :: Breakdown



kuphryn
02-24-2004, 01:49 PM
Hello.

I have extensive experience designing and developing applications using Visual C++ and its various Win32 tools including MFC. I have also used Borland C++ Builder, but only on Win32 console projects. I would like to discuss some essential differences including advantages and disadvantages between the two IDE.

- How would you compare MFC and Win32 API to WinForm (Borland - correct?).

- Is it possible to access raw Win32 API directly when working under Borland C++?

- Are there message queues in WinForm? How does it handle messages?

- How does Borland C++ handle multithreading and multiple processes?

- What is the future of Visual C++ and Borland C++?

Thanks,

Kuphryn

ober
02-24-2004, 02:31 PM
This seems way to programming oriented to be in General Discussions. Try the tech board or put it in one of the programming forums.

Ken Fitlike
02-24-2004, 03:43 PM
It's been a long time since I fiddled around with Borland Builder so please treat these opinions (hobbyist) accordingly. :)

>>- How would you compare MFC and Win32 API to WinForm (Borland - correct?).<<

Assuming by 'WinForm' you mean Borland's c# I can't make any comparison as I have never used Borland's c# tools and I don't have much knowledge/experience of c# anyway. Borland community's c# page (http://community.borland.com/csharp/0,1419,13,00.html) may be of some use. If you mean Borland's vcl then, from what I recall, it seemed a lot more systematic and intuitive set of c++ classes for various 'windows stuff' that I found considerably easier to use than mfc. Also it's RAD so gives you vb development speed with c++ power (although that last statement has probably been appropriated from some advertising blurb ;) ). Also Builder comes with a version of mfc so may give the best (or worst) or both worlds. I think that the latest versions of Builder also use stlport (http://www.stlport.org/).

>>- Is it possible to access raw Win32 API directly when working under Borland C++?<<

Yes. You should find a complete set of ms win32api headers with your Borland Builder install; the win32 libs will, of course, be Borland but made (mostly) either from ms libs or windows dll's. Some extra Borland specific object file(s) is/are required (cow32.obj, I think).

>>- Are there message queues in WinForm? How does it handle messages?<<

Assuming vcl --> These are wrapped up as far as I recall and I don't know the exact mechanism of handling/dispatch but there are some macros ( MESSAGE_MAP, example of use here (http://community.borland.com/article/0,1410,26370,00.html)) you can use to intercept these handlers if you need to use your own. Window subclassing (ie with SetWindowLong/SetWindowLongPtr) remains a viable option if you require more complete control over window message handling.

>>- How does Borland C++ handle multithreading and multiple processes?<<

Don't know. There may be more information with the documentation.

>>- What is the future of Visual C++ and Borland C++?<<

*Gazes into crystal ball*

Sorry, all i'm getting is the winning numbers for next week's lottery draw so nothing useful there. ;)

BTW Kuphryn, if you don't already know, there are trial versions of C++ Builder 6 (http://www.borland.com/products/downloads/download_cbuilder.html) and C#Builder (http://www.borland.com/products/downloads/download_csharpbuilder.html) that may give you an opportunity to answer some of these questions more completely for yourself. :)

adrianxw
02-24-2004, 04:53 PM
Ken has already covered most. I would only add that the version of VCL I have is not thread safe. It was not designed to be so, thus the visual components need to have synchronisation wrapped around them. This is not difficult, but not built in. Later version may be thread safe - don't know, the version I use is that shipped with Delphi 4, so is getting on a bit now.

Handling multithreading and multiprocessing with the API routines is exactly the same as with VC++.

I agree with Ken, VCL is much better thought out then MFC.