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

Hay*_*mey 2 c c# c++ dll interop

我有一个超级高性能的C/C++数据结构(见这里!),我想在我的C#程序中访问和使用它.

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

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

Kat*_*ory 5

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

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