我在 C 上有一个带有 func 的非托管 DLL:
char* My_Func(char* data, int input_length, int output_length);
在这个函数中我有
result = (char*)malloc(output_lenght);
strcpy(result,test_char);
return(result);
在 C# 中我导入它
[DllImport(@"libsmev.DLL", CharSet = CharSet.Ansi)]
public static extern IntPtr My_Func([MarshalAs(UnmanagedType.LPStr)]string data, int input_length, out int output_length);
并称它为
IntPtr result = My_Func (n1, n1.Lenght,n2);
如何释放 char* 或 IntPtr?
Marshal.FreeHGlobal(IntPtr) 和 Marshal.FreeCoTaskMem(IntPtr) 不起作用。