我应该如何用C++;在.NET中使用? 我有一个用C++编写的LIB原型。它是CPU密集型的,所以我在C中(C)中的一部分编写了C++中的“肉类”,并使用自定义内存分配器和各种各样的东西。

我应该如何用C++;在.NET中使用? 我有一个用C++编写的LIB原型。它是CPU密集型的,所以我在C中(C)中的一部分编写了C++中的“肉类”,并使用自定义内存分配器和各种各样的东西。,.net,c++,wrapper,managed-c++,.net,C++,Wrapper,Managed C++,我想在.NET中使用这个库。我不确定该怎么做。看起来我应该编写一个C接口,在.NET中编写一个包装器来使用托管C++,我假设我有完全相同的代码文件,除了我添加了一个文件或两个文件,并为它们编写了托管类。 如果我选择托管路线,我应该知道哪些好处或限制?C++/CLI是您想要的答案。C++的优点在于它允许您将本机C++与.NET代码混合,可以用来为.NET开发人员构建一个库。以下MSDN文章是对其工作原理的精彩介绍: 希望这有帮助 > P>这取决于C++库与.NET代码之间的“表面接触”(BTW,

我想在.NET中使用这个库。我不确定该怎么做。看起来我应该编写一个C接口,在.NET中编写一个包装器来使用托管C++,我假设我有完全相同的代码文件,除了我添加了一个文件或两个文件,并为它们编写了托管类。
如果我选择托管路线,我应该知道哪些好处或限制?

C++/CLI是您想要的答案。C++的优点在于它允许您将本机C++与.NET代码混合,可以用来为.NET开发人员构建一个库。以下MSDN文章是对其工作原理的精彩介绍:

希望这有帮助

> P>这取决于C++库与.NET代码之间的“表面接触”(BTW,您需要以任何方式将其公开为DLL)

如果您真的有一个完全面向对象的库,其中包含类、方法、属性,即:对象模型,那么您可以使用,因此集成将非常透明。缺点是您必须了解它的一些微妙之处(我认为您还必须了解如何嵌入MSVC运行时)

如果可以将API简化为一组有限的方法,那么只需导出其中的一些方法并使用p/Invoke(dlliport属性。请参阅本教程:)。在这种情况下,确保暴露的参数将由.NET层(不使用复杂的C/C++类型,指针指向指针,…,不要使用C++类,…),并试图确保内存分配将由.NET侧完成。 PS:作为旁注,您应该考虑32位/64位问题。您的DLL是64位的吗?你会分发这两个版本吗。NET同时具备这两种功能