2010-03-12 139 views
3

在你告诉我“谷歌它”之前 - 听我说。我来自C/C++ & Perl/Python(在Linux上)的背景,但我有几个项目,我不得不跳入Windows开发。特别创建一些COM DLL(不是.Net)。顺便说一句,在阅读了一些资源后,我确实知道什么是DLL什么是COM &。介绍COM DLL

我试图在Google上搜索,但是我遇到的大部分教程都假设了一些Windows开发经验,或者至少这是我看起来的样子。所以,我想知道是否有人通过类似的路径&可能指向一个方向,这将有助于我开始开发COM DLL。我有权访问VS2005。谢谢。

+0

请注意,您可以使用VB.NET或C#.NET语言创建COM组件。另外,请注意,VS2008速成版本是免费的,所以你不一定需要在VS2005中停留过去。最后,完整的VS2010 Ultimate Edition Release Candidate可以免费下载_now_,所以你有机会保持最新状态 - 它会在一个月内发布。 – 2010-03-12 00:52:16

+0

我不知道VS2010是免费下载的。我应该检查出来。谢谢。 – John 2010-03-12 01:27:06

回答

1

“无.NET”的要求迫使你写在非托管C代码++。 COM有一个非常陡峭的学习曲线,通过使用ATL有点扁平化。至少会帮助你获得正确的基础知识。 VS2005具有内置的类向导来生成您需要的样板代码,并让您的代码和IDL保持同步。你需要一本好的COM书(很难找到)和Chris Sells的ATL内部。

+0

@nobugz:我读的方式不是他不能使用.NET,而是他需要创建一个COM DLL而不是“.NET DLL”。也就是说,他需要使用COM而不是创建“普通”代码。 – 2010-03-12 01:00:55

+0

是的,我应该限定我的陈述。这个DLL将被Perl和Python等脚本语言所使用。所以我无法创建托管dll。至少这是我从我的搜索中学到的。如果我错了,请纠正我。 – John 2010-03-12 01:29:04

+1

@John,那不准确。当您使用[ComVisible(true)]时,COM互操作支持将自动为您启动CLR。这将是一个完整的解决方案,比ATL更容易。 – 2010-03-12 01:35:36