读书人

C#调用c的dll失误

发布时间: 2013-07-08 14:13:00 作者: rapoo

C#调用c的dll出错,急!急!急!
函数原型:void _stdcall ReleaseMemory(unsigned char **OUTData) 函数功能:释放内存
C#调用: [DllImport("a.dll")]
public static extern void ReleaseMemory(ref StringBuilder OUTData);
出现错误:尝试读取或写入受保护的内存。这通常指示其他内存已损坏
用string也是同样的错误,无助啊! C# 内存
[解决办法]
byte或void**是这样用的:
void* pv = IntPtr.Zero.ToPointer();
void** OutData= &pv;
当然你用ref byte*也可以。

取内容用Marshal.PtrToStringAnsi(new IntPtr(*OutData,length),); 这是void**的时候

读书人网 >C#

热点推荐