在C#程序中使用C / C ++数据结构

时间:2010-07-21 15:24:24

标签: c# c++ c dll interop

我有一个超高性能的C / C ++数据结构(see here!),我想在我的C#程序中访问和使用。

想象一下,C / C ++数据结构有一个公共API(getadddelete等)。
如何以高性能的方式在C#中多次调用这些方法?

PS 在你批评我使用短语“C / C ++”之前......
在我看来,C / C ++不同于C C ++编程语言。我不知道C ++,而是使用一些C ++构造的C的扩展,可以用C ++编译器编译!

2 个答案:

答案 0 :(得分:5)

如果性能对您很重要,那么您应该避免多次越过托管/非托管边界。 C#和C ++都可以是高性能语言,但互操作性成本并不令人愉快。

我建议你编写一个C库(只要方法是extern C就可以用C ++构造实现)并使用P / Invoke从C#代码-once调用它。该库可以聚合您的高性能数据结构,并将一些有用的信息返回给C#端。

答案 1 :(得分:0)

您可以使用烟斗。