C# 向非托管DLL(delphi 7)传参

delphi dll函数原型:

function Check_SYMES(sStr: Pchar): PChar; export; stdcall;

 

C# 调用:

[DllImport("PreCheckMES", EntryPoint = "Check_SYMES", CallingConvention = CallingConvention.StdCall)]
private static extern IntPtr Check_SYMES(IntPtr str);

报错:System.AccessViolationException:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”

尝试解决:将IntPtr更换为string、StringBuilder类型均会报上述错误。

求网友解答,非常感谢!!!

 

试过,还是报同样的错误。谢谢解答!