为C#和C ++应用程序编写DLL

我需要编写一些DLL,它们都可以从C#应用程序和C ++应用程序访问。 最初,我想通过在C#中编写DLL并从C#和C ++应用程序链接到它来节省时间/精力。 这种方法是明智的,还是应该使用C ++编写DLL?

我的建议是在你最舒服的地方实现代码,但不要忘记你的互操作要求。 事先了解您的界面是什么以及最终产品需要什么粘合剂。 在填写实现之前编写接口并测试互操作。

如果您的要求的复杂性使得舒适度无关紧要,我会用C ++编写它,以便您可以通过P / Invoke访问。

一个重要因素是您使用C ++ / CLI或本机C ++。 在任何一个方向上,C ++ / CLI和C#之间的互操作要容易得多。

我建议你用C ++编写你的DLL,用ATL或类似方法将它们的公共类公开给COM,然后让tlbimp在COM接口周围生成一个瘦的C#包装器。

如果要在其他.Net应用程序中使用DLL,那么使用C#或C ++编写它是非常安全的,无论你更舒服。

如果要在其他地方使用DLL,您会发现在C ++中编写它更容易。