我有一些已转换为 DLL 的 C 代码。我需要从 C# 程序调用 DLL。我收到错误“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。”
所以,我相信我没有正确转换我的函数原型,这会导致内存泄漏。
C中的函数原型是
int __stdcall karacell_bridge( int argumentCount, char **argContent)
这是 C# DLL 调用中函数原型的正确转换吗?
[DllImport("KaracellLib.dll", EntryPoint = "karacell_bridge@8", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, ExactSpelling = true)]
public static extern int karacell_bridge(int argumentCount, [In, Out]string[] argContent);