是否可以这样理解---
.net框架中的那些类,都是COM组件。
"垃圾回收"就是IUnkown来实现的。
而其"using System.IO"等,就相当于组件的"IDL"接口定义文件。
使用C#语言编程,其实就相当于使用这些已定义的组件类型写程序。经过编译,形成的是对组件操作的命令集--即--托管代码(MISL)。
COM运行库,就相当于CLR。是这样吗?
.net框架中的那些类,都是COM组件。
"垃圾回收"就是IUnkown来实现的。
而其"using System.IO"等,就相当于组件的"IDL"接口定义文件。
使用C#语言编程,其实就相当于使用这些已定义的组件类型写程序。经过编译,形成的是对组件操作的命令集--即--托管代码(MISL)。
COM运行库,就相当于CLR。是这样吗?
{
[interfaceType(ComInterfaceType.InterfaceIsDual)]
public interface ICSharp
{
void sendmailMethod();
}
[ClassInterface(ClassInterfaceType.AutoDual)]
class MailM2:ICSharp
{
public void sendmailMethod()
{
……………………
}
}
}2、创建类型库:tlbexp TestEmailer.dll执行后将生成TestEmailer.tlb,用COM Object Viewer看看。
但感觉.net其实就是改造COM过来的,因为其过渡很平滑。
学习COM是很苦,而且要求你精通C/C++。但是如果你掌握了COM,再学习其他任何东西都回觉得得心应手。坦白的说,COM是目前为止我见到过的除了Windows之外最复杂的东西(包括OLE)。最后一句话,COM是Windows将来的基础。
.net感觉就是用托管语言实现了很多 com 内容.不知道这样理解对不对...
1、开发Com不只是C++,用得最多是VB,最全面的赶得上C++的是Delphi,只有傻子才会用ATL开发Com应用,聪明的程序员用delphi。2、MFC开发com,c++程序员都不怎么用了,要用一般也就用ATL,但是ATL比较晦涩。3、微软已经明确表示不会再提供基于Com的新的应用程序接口了。Com已经没落,已经逐步被微软放弃了。
没有什么信不信的问题。只是提出自己的看法而已。大家讨论一下,会对问题有更深入的理解。
>>3、微软已经明确表示不会再提供基于Com的新的应用程序接口了。Com已经没落,已经逐步被微软放弃了。当然,微软都为你包装好了,底层当然不欢迎你来动。:)
但微软自己还在用啊!
它的许多应用程序的SDK都是提供COM接口的。
晕!呵呵,MS带着我们狂奔:)
学习COM是很苦,而且要求你精通C/C++。但是如果你掌握了COM,再学习其他任何东西都回觉得得心应手。坦白的说,COM是目前为止我见到过的除了Windows之外最复杂的东西(包括OLE)。最后一句话,COM是Windows将来的基础。