我正在为 C++ 项目编写一个插件,并且我正在利用 UnmanagedExports Nuget 包,它允许在托管 .NET 代码中公开 C 函数。 https://www.nuget.org/packages/UnmanagedExports
我编写了一个插件,它接收一个字符串(在 c++ 中定义为 char *) 下面是我为此定义的 UnmanagedExport 方法。
[DllExport("GetString", CallingConvention = CallingConvention.Cdecl)]
public static void GetString(StringBuilder MyString)
{
//Use and modify the StringBuilder. It receives the string passed and returns the modified version because it is being passed by reference.
}
上面的代码运行得很漂亮。
现在的问题是如何将字符串数组传递给我的 UnmanagedExport 代码。C++ 将调用定义为需要 char *[]
这不起作用。
[DllExport("GetString", CallingConvention = CallingConvention.Cdecl)]
public static void GetString(StringBuilder[] MyString)
{
}