如何为libssh2编写C#包装器

时间:2014-10-24 06:15:36

标签: c# libssh2

我们计划为libssh2编写C#包装器。我有以下问题:

1)因为libssh2是用C / C ++实现的。如何在C#项目中包含C ++ DLL?

2)如何在C#项目中处理libssh2的 Session 对象?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

从C#可以通过p / Invoke和DLL-Import调用C-Method。因此,如果要使用c ++库,则必须编写一个过程c-wrapper。 这是dll-import的一个例子:

 [DllImport("kernel32.dll")]
 public extern static void Sleep(uint msec);

这就是你如何导出c函数:

_declspec(dllexport) void __cdecl Function1(void);

我建议您阅读以下教程:Tutorial p/Invoke

第二种解决方案是编写C ++ / CLI包装器,但这要复杂得多: C++/CLI wrapper