我的大部分经验是使用Java和VB.NET等高级语言。我确实有一些C ++经验(在大学)。
我理解COM DLL和.NET编译器生成的DLL之间的区别。我不完全理解COM DLL和C和C ++编译器生成的Windows DLL之间的区别。
我想在.NET程序中使用C ++ DLL。我设法让这个工作。我的问题具体是:C ++生成的DLL和VB6生成的DLL(基于COM)之间有什么区别。
我花了一个小时谷歌搜索并查看MSDN。我虽然能在不问问题的情况下找到答案,但我没有。
答案 0 :(得分:13)
两者之间存在巨型差异。该列表太长,无法在SO帖子中准确再现,我将尝试突出显示:
特定于COM的自动化子集:
最后一个子弹可能会让你觉得你了解COM dll和.NET dll之间的区别。它们没有任何共同点,但.NET非常好并且与COM服务器互操作。 Tlbimp.exe实用程序非常擅长于分析差异。
答案 1 :(得分:5)
Com是一个二进制标准,允许应用程序使用可互换的二进制模块,只要符合com标准,任何语言都可以生成com投诉库。因此,不确定性取决于某些com库将是本机机器代码,有些可能会被管理并通过解释器运行。 com的真正意义在于弥合c ++在源代码级别的oop风格与预构建的二进制世界之间的可用性差距。