对于ActiveX开发,我应该使用什么?MFC还是ATL?
在Microsoft Documents中,它说我们可以使用MFC来构建ActiveX控件.但是当我在Google上搜索时,我看到有人提到ATL对这项工作很有帮助.这是我从维基百科得到的,似乎证实了这一论点.
另一方面,在不需要MFC的图形用户界面部件的情况下,ATL是更轻量级的替代方案.
我该怎么用?如果我可以同时使用它们,使用它们的利弊是什么?
使用ATL.我在MFC开发了20多年.对于绝大多数用途而言,ATL是更好的选择,因为它更轻巧,更易于理解 - 尽管两者都有陡峭的学习曲线.
我选择使用MFC而不是ATL的唯一原因是:
1)我正在编写一个非常复杂的ActiveX/Windows控件,在MFC中编写它的windows控件部分是有意义的,因此在MFC中搭载控件的COM接口是有意义的.但是,对于补充对象(比如一个返回Object的属性),我会使用ATL,除非它们也是一个非常复杂的Windows控件.
2)我必须使用OLE(对象链接和嵌入)作为文档类型,并且更容易使用MFC的内置框架.
我已经在同一个MFC项目工作了20多年,这是一个非常复杂的Windows程序.该计划的大多数方面都是由COM公开的.我们混合使用MFC COM和ATL COM.当我第一次开始时,在ATL获得牵引力之前,我通常在MFC中实现COM对象.现在,除非出现上述两个原因,否则我使用ATL.
但是,这只是一种意见.