我们计划为libssh2编写C#包装器。我有以下问题:
1)因为libssh2是用C / C ++实现的。如何在C#项目中包含C ++ DLL?
2)如何在C#项目中处理libssh2的 Session 对象?
提前感谢您的帮助。
答案 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