字符 * str[] 在 C# 中等效
本文关键字:str 字符 | 更新日期: 2024-10-31 15:23:46
我正在导入一个带有定义的函数
__declspec(dllexport) int __stdcall karacell_bridge(
int argumentCount, char *argContent[])
从C DLL到MS Visual Studio C#项目。如何在 C# 中重新定义参数 char *argContent[]?
我可以使用MarshalAs
吗?还是在 C# 中将其定义为 public static extern int karacell_bridge( int argumentCount, string[] argContent)
是正确的?
这应该有效:
public unsafe static int karacell_bridge_wrapper(string[] input)
{
char*[] argContent = new char*[input.Length];
for(int i = 0; i < input.Length; i++)
{
char* str;
fixed (char* cptr = input[i])
{
str = (char*)cptr;
}
argContent[i] = str;
}
return karacell_bridge(input.Length, argContent);
}
请记住在 C# 项目中允许不安全的代码(右键单击 -> 属性 -> 生成 ->允许不安全的代码)