调用从C#获取指针的C ++函数

时间:2011-10-09 23:37:34

标签: c# .net c++ interop

我在C ++中有一个返回指针值的函数:

fPosFirst( int &aId, char *aNname, char *aDirectory );

但我必须把它传递给C#。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

您需要检查P/Invoke(平台调用),这是一种从.Net /托管代码(C#)调用本机代码函数(C和C ++)的方法。

答案 1 :(得分:1)

这是VB.NET语法,但您应该能够轻松地将其转换为C#。

Private Declare Ansi Sub fPosFirst lib "libraryname" (ByRef aId as Integer, byval aName as StringBuilder, byval aDirectory as StringBuilder)

现在如果aNname和aDirectory应该是const char *,你可以使用String而不是StringBuilder,它会变得更容易。