COM、MFC、ATL跟CLR的区别

COM、MFC、ATL和CLR的区别
这几个的区别很多网上都将了,但是还是不能解决我的问题;
我想知道,这几个的关系,而不是各自的定义。
我是很菜很菜的菜鸟,基本不懂windows编程,大侠们,能不能用层次关系或者其他关系描述一下这个几个的不同和相同。

PS:顺便问一下,visual studio和 .net framework之间的关系啊,
mfc windows .net 编程

------解决方案--------------------
mfc和atl都可以写com。
------解决方案--------------------
如果定义你真的理解了就不会再有疑问了
如果还没有深入理解可以在今后的学习过程中一点点的深入
你这个问题就好像问男人、女人、猴子、石头有什么区别和联系
然后你说你知道男人、女人、猴子、石头分别是什么
就是想问问相同点和不同点
这个确实不太好回答
------解决方案--------------------
CLR是.NETFRAMEWORK出现之后才出来的,托管C++,之前的C++诸如内存管理之类的都要自己控制CLR这种托管方式。系统会自动保证内存释放。

visual studio是工具,写代码,编译,测试,性能分析等等的工具,功能非常强大
.net framework,MFC,ATL可以都认为是框架。就是别人事先都做了大量工作,你只要简单的调用就能实现你想做的一部分事情。
------解决方案--------------------
com是一种思想
MFC和ATL都是框架
CLR是.net环境下的托管C++
------解决方案--------------------
COM、MFC、ATL和CLR

CLR是一种给各种语言提供运行时,类似于jvm,给.net 平台内的提供运行基础.去理解一下其中一个重要的概念叫IL(中间语言), 你就大概明白runtime是做什么的了。.net framework 是个框架内使用clr来提供运行时

visual studio 是IDE。从名字上来理解,集成开发工具,就是继承了编辑器,编译器,运行部署,容器等一系列的工具。开发时来用的。

至于MFC 和 ATL 比较类似,可以理解为为软开发的类库,c/c++中可以调用他,而他门又不仅现如此,还提供了开发框架等等。

com是一种思想或者标准,使用MFC 和ATL都可以实现这种思想或者标准。