ATL/WTL vs MFC
-
Hello, I am new to ATL/WTL and I don't really understand why I would need these libraries. Actually I only developed my applications with MFC and some ActiveX components. I read some articles about ATL and WTL on CodeProject. In the one hand I read 5 articles about ATL and understood nothing, the writer mostly talk about pointers and vtables... What's his point ? What about saying "ATL is...". Then I read the introduction to WTL and understood that It was somekind of MFC-COM wrapper. Why would I need a MFC-COM wrapper to developer a software ? Moreover It seems that it's not an official library and I can't find any information on MSDN: "Your search using "All words" for ""wtl"" returned 0 results." If you have any good articles or books to advice me, that would great. I feel like I am losing something. Is "Developer's Workshop to COM and ATL 3.0" a good reference ? I don't really understand why I would need something else that MFC to develop a Windows Application. All your help is welcome, JM Web: http://goa.ifrance.com
-
Hello, I am new to ATL/WTL and I don't really understand why I would need these libraries. Actually I only developed my applications with MFC and some ActiveX components. I read some articles about ATL and WTL on CodeProject. In the one hand I read 5 articles about ATL and understood nothing, the writer mostly talk about pointers and vtables... What's his point ? What about saying "ATL is...". Then I read the introduction to WTL and understood that It was somekind of MFC-COM wrapper. Why would I need a MFC-COM wrapper to developer a software ? Moreover It seems that it's not an official library and I can't find any information on MSDN: "Your search using "All words" for ""wtl"" returned 0 results." If you have any good articles or books to advice me, that would great. I feel like I am losing something. Is "Developer's Workshop to COM and ATL 3.0" a good reference ? I don't really understand why I would need something else that MFC to develop a Windows Application. All your help is welcome, JM Web: http://goa.ifrance.com
WTL is not an MFC wrapper, it is a replacement for MFC. It is for developers who want to be in control, at a low level, of what is happening in their applications and who do not want to ship the huge MFC dll. 1mb may not look like much, but on a handheld with 8megs of memory, it is :) Anyway, another reason to ditch MFC is it's uglyness, but that's a different can of worms...
-
WTL is not an MFC wrapper, it is a replacement for MFC. It is for developers who want to be in control, at a low level, of what is happening in their applications and who do not want to ship the huge MFC dll. 1mb may not look like much, but on a handheld with 8megs of memory, it is :) Anyway, another reason to ditch MFC is it's uglyness, but that's a different can of worms...
Hi, Well if WTL is that great why can't I find any books or references on it ? Nothing on Amazon nor MSDN. It sounds like a 007 library for spy developers :D. MFC is not perfect but I like it anyway, it's between the beauty and the beast which means you have both worlds. I can't dig into WTL or ATL if I can't find anything about useful information about it. The 5 articles from CodeProject don't really explain anything about ATL and the WTL one presents that library in its darker side. Any books or articles I should read ? Thanks again, JM Web: http://goa.ifrance.com
-
Hi, Well if WTL is that great why can't I find any books or references on it ? Nothing on Amazon nor MSDN. It sounds like a 007 library for spy developers :D. MFC is not perfect but I like it anyway, it's between the beauty and the beast which means you have both worlds. I can't dig into WTL or ATL if I can't find anything about useful information about it. The 5 articles from CodeProject don't really explain anything about ATL and the WTL one presents that library in its darker side. Any books or articles I should read ? Thanks again, JM Web: http://goa.ifrance.com
Jean-Marc Molina wrote: a 007 library for spy developers LOL :) Jean-Marc Molina wrote: Any books or articles I should read ? ATL Internals is very good, and it's not super-advanced like MFC Internals; it makes a good intro to ATL text in fact. --Mike-- THERE IS NO THERE IS NO BUT THERE IS MAGIC PIXIE DUST BUSINESS GENIE CODE PROJECT :bob: Homepage | RightClick-Encrypt | 1ClickPicGrabber "Which comes first, the bug or the stress?" -- Chris Maunder
-
Jean-Marc Molina wrote: a 007 library for spy developers LOL :) Jean-Marc Molina wrote: Any books or articles I should read ? ATL Internals is very good, and it's not super-advanced like MFC Internals; it makes a good intro to ATL text in fact. --Mike-- THERE IS NO THERE IS NO BUT THERE IS MAGIC PIXIE DUST BUSINESS GENIE CODE PROJECT :bob: Homepage | RightClick-Encrypt | 1ClickPicGrabber "Which comes first, the bug or the stress?" -- Chris Maunder
Hi Michael, Thanks for the reference but isn't it too Advanced or "Internal" ? I want somekind of Workshop book. For example one of my all time fav book about MFC and Windows app dev is: Inside Visual C++. I thought "Developer's Workshop to COM and ATL 3.0 by Andrew Troelsen" could be that book. People also adviced me to buy: WROX - Beginning ATL 3 COM Programming Microsoft Press - Inside COM by Dale Rogerson I am also a bit scared because I don't know anything about DCOM nor COM+... Oh my god I feel dumb ^^. But first let's learn a few things about ATL/WTL :). Here is a very interesting article about MFC vs ATL/WTL: http://archive.devx.com/free/mgznarch/vcdj/1999/julmag99/atlinherit1.asp JM double zero ATL/WTL developer Web: http://goa.ifrance.com
-
Hello, I am new to ATL/WTL and I don't really understand why I would need these libraries. Actually I only developed my applications with MFC and some ActiveX components. I read some articles about ATL and WTL on CodeProject. In the one hand I read 5 articles about ATL and understood nothing, the writer mostly talk about pointers and vtables... What's his point ? What about saying "ATL is...". Then I read the introduction to WTL and understood that It was somekind of MFC-COM wrapper. Why would I need a MFC-COM wrapper to developer a software ? Moreover It seems that it's not an official library and I can't find any information on MSDN: "Your search using "All words" for ""wtl"" returned 0 results." If you have any good articles or books to advice me, that would great. I feel like I am losing something. Is "Developer's Workshop to COM and ATL 3.0" a good reference ? I don't really understand why I would need something else that MFC to develop a Windows Application. All your help is welcome, JM Web: http://goa.ifrance.com
If you tried to create ActiveX or COM with MFC, try the same with ATL. No ugly METHOD_PROLOGUE hacks, easy and straitforward. WTL is ok, also heavy templates aren't as easy to read as non-template MFC code. Brian
-
Hi Michael, Thanks for the reference but isn't it too Advanced or "Internal" ? I want somekind of Workshop book. For example one of my all time fav book about MFC and Windows app dev is: Inside Visual C++. I thought "Developer's Workshop to COM and ATL 3.0 by Andrew Troelsen" could be that book. People also adviced me to buy: WROX - Beginning ATL 3 COM Programming Microsoft Press - Inside COM by Dale Rogerson I am also a bit scared because I don't know anything about DCOM nor COM+... Oh my god I feel dumb ^^. But first let's learn a few things about ATL/WTL :). Here is a very interesting article about MFC vs ATL/WTL: http://archive.devx.com/free/mgznarch/vcdj/1999/julmag99/atlinherit1.asp JM double zero ATL/WTL developer Web: http://goa.ifrance.com
I don't know of a workshop-style book (something like The MFC Answer Book) for ATL. The Wrox book you mentioned is also good (that was the first ATL book I bought) and covers lots of ATL topics, although GUI doesn't get covered until about chapter 8. --Mike-- THERE IS NO THERE IS NO BUT THERE IS MAGIC PIXIE DUST BUSINESS GENIE CODE PROJECT :bob: Homepage | RightClick-Encrypt | 1ClickPicGrabber "Which comes first, the bug or the stress?" -- Chris Maunder
-
Hello, I am new to ATL/WTL and I don't really understand why I would need these libraries. Actually I only developed my applications with MFC and some ActiveX components. I read some articles about ATL and WTL on CodeProject. In the one hand I read 5 articles about ATL and understood nothing, the writer mostly talk about pointers and vtables... What's his point ? What about saying "ATL is...". Then I read the introduction to WTL and understood that It was somekind of MFC-COM wrapper. Why would I need a MFC-COM wrapper to developer a software ? Moreover It seems that it's not an official library and I can't find any information on MSDN: "Your search using "All words" for ""wtl"" returned 0 results." If you have any good articles or books to advice me, that would great. I feel like I am losing something. Is "Developer's Workshop to COM and ATL 3.0" a good reference ? I don't really understand why I would need something else that MFC to develop a Windows Application. All your help is welcome, JM Web: http://goa.ifrance.com
Hi, you dont have to know about COM to learn WTL, ibe wrote several WTL apps, and i dont know jack-S@#t about COM :) What you DO need to know about (at least at a basic level) is about Win32 (the windows API), cause WTL is just a thin wrapper around it(unlike MFC, wich almost completely "hides it" from you) You dont know API? No sweat! if you start learning WTL you will "accidentally" learn API! I think that this is the major advantage about WTL over MFC, you can writte code on MFC with only very basic knowlage on the windows API, but on WTL you MUST know about it, So why is this an advantage? well consider this, if you were asked to write something without MFC, you probably couldnt do it right? cause when you learned about MFC you learned exacly that, MFC! and MFC works rather Differently that the windows API. If however you learn about WTL (and there for W32 API) and you someday need to write an app using something else, chances are that you WILL be able to do it, cause you allready know the very "heart" of windows programming wich is of course... The API. In the simplest way of seeing the WTL vs MFC debate, i think it all comes down to this: If you write programs because you have to, because its "your job" and you want to do it in the easiest fastest possible way (that doesnt involve VB :), and are confindent that you will NEVER have to use anything else but MFC, then by all means DO use MFC. BUT, if you write programs because you LOVE IT, and you wanna have full control of whats happening inside them, plus, you recon that you some day might have to use something else to do it, then i pretty much belive that WTL is a good way to go. On a side note, i actually belive that WTL is easyer to learn that MFC. it took me about 5-6 months plus 3 full size books to get a relatively firm foothold on MFC, and it only took me about 2 weeks and a couple of sketchy online tutorials to learn WTL.
-
Hi, you dont have to know about COM to learn WTL, ibe wrote several WTL apps, and i dont know jack-S@#t about COM :) What you DO need to know about (at least at a basic level) is about Win32 (the windows API), cause WTL is just a thin wrapper around it(unlike MFC, wich almost completely "hides it" from you) You dont know API? No sweat! if you start learning WTL you will "accidentally" learn API! I think that this is the major advantage about WTL over MFC, you can writte code on MFC with only very basic knowlage on the windows API, but on WTL you MUST know about it, So why is this an advantage? well consider this, if you were asked to write something without MFC, you probably couldnt do it right? cause when you learned about MFC you learned exacly that, MFC! and MFC works rather Differently that the windows API. If however you learn about WTL (and there for W32 API) and you someday need to write an app using something else, chances are that you WILL be able to do it, cause you allready know the very "heart" of windows programming wich is of course... The API. In the simplest way of seeing the WTL vs MFC debate, i think it all comes down to this: If you write programs because you have to, because its "your job" and you want to do it in the easiest fastest possible way (that doesnt involve VB :), and are confindent that you will NEVER have to use anything else but MFC, then by all means DO use MFC. BUT, if you write programs because you LOVE IT, and you wanna have full control of whats happening inside them, plus, you recon that you some day might have to use something else to do it, then i pretty much belive that WTL is a good way to go. On a side note, i actually belive that WTL is easyer to learn that MFC. it took me about 5-6 months plus 3 full size books to get a relatively firm foothold on MFC, and it only took me about 2 weeks and a couple of sketchy online tutorials to learn WTL.
Thanks Ernesto I totally agree. I use MFC because of its community and good references (books, websites...). I would like to learn VB too because It would improve my app dev workflow... I won't use WTL because I can't find anything interesting about it. No books, no references, it's not official so there's no support... The idea of developping an other MFC is a great idea but I talked with some guys about it and I don't think It can be a better library. It's supposed to be fast, small and flexible but actually It's a very very light MFC-like library and it lacks a lot of features. Moreover MFC7 is far better that MFC4.2... So I will stick with my good old MFC4.2 and Visual C++ 6 because It perfectly suits my need. But I will buy COM ATL 3.0 to learn a few things about COM/ATL :) Thanks again, JM Web: http://goa.ifrance.com
-
Thanks Ernesto I totally agree. I use MFC because of its community and good references (books, websites...). I would like to learn VB too because It would improve my app dev workflow... I won't use WTL because I can't find anything interesting about it. No books, no references, it's not official so there's no support... The idea of developping an other MFC is a great idea but I talked with some guys about it and I don't think It can be a better library. It's supposed to be fast, small and flexible but actually It's a very very light MFC-like library and it lacks a lot of features. Moreover MFC7 is far better that MFC4.2... So I will stick with my good old MFC4.2 and Visual C++ 6 because It perfectly suits my need. But I will buy COM ATL 3.0 to learn a few things about COM/ATL :) Thanks again, JM Web: http://goa.ifrance.com
It is true that MFC7 vs WTL is a totally different question that MFC4.2 vs WTL. For the longest time, WTL was the only method of getting all the new fancy UI without hacking up MFC. But that isn't the case anymore. One big difference between MFC and WTL is that WTL doesn't try to force a design framework on the programmer. WTL doesn't have this document concept already built in. If you want documents, that is a negative. If you don't want documents, it is a HUGE plus. Also, WTL provides a much simplified internal message system. This has good points and bad. Personally, I found MFC's message system to be overly complex in an attempt to be idiot proof. Tim Smith I'm going to patent thought. I have yet to see any prior art.