假设我是 只有,用它们编写“普通”的 GUI 程序(没有 COM,没有 ActiveX,没什么特别的) ,那么我将看到 ATL 和 MFC 之间的根本区别是什么,以帮助我找出使用哪一个?
我在网上做了一些搜索,但最终没有一个答案真正回答了我的问题:
Http://msdn.microsoft.com/en-us/library/bk8ytxz5(v=vs.80).aspx
”ATL 是一种快速、简单的方法,既可以在 C + + 中创建 COM 组件,又可以保持较小的占用空间。如果不需要 MFC 自动提供的所有内置功能,可以使用 ATL 创建控件。”
你没有回答我的问题,因为:
我不和通讯公司合作。
这是否意味着 MFC 不是速度很快? 为什么?
”MFC 允许您创建完整的应用程序、 ActiveX 控件和活动文档。如果已经使用 MFC 创建了控件,则可能希望继续在 MFC 中进行开发。在创建新控件时,如果不需要 MFC 的所有内置功能,可以考虑使用 ATL。”
也没有回答我的问题,因为:
我一开始甚至都不知道 ActiveX是是什么。
看起来好像微软正在打击 MFC 的使用,但我不知道为什么。
ATL 没有提供的 是 MFC 的“内置功能”到底是什么?
一般来说,这并不能回答我的问题,因为 这解释不了它的缺点和它们背后的原因。
因为无论是直接的还是间接的,所有东西似乎都链接到上一页:
我如何决定是否使用 ATL,MFC,Win32或 CLR 为一个新的 C + + 项目?
“ ATL 和 MFC 在两者之间做出选择有些棘手。没开玩笑吧我建议你参考 MSDN 的主页来做出选择,以便在它们之间做出决定。”
显然,这并没有回答我的问题。 :)
http://www.codeguru.com/forum/archive/index.php/t-64778.html
等等。
我有什么 currently observed(在过去的几天里,同时试图学习两者) :
但是 他们之间似乎没有任何建筑上的差异:
BEGIN_MSG_MAP
和 BEGIN_MESSAGE_MAP
... 大不了的)CWnd
vs. CWindow
但是,如果除了编译时方面和运行时方面之外没有真正的区别,那么为什么它们都存在呢?一个还不够吗?
What am I missing here?