C#调用非托管DLL中的API:
LONG APIENTRY devwdm_GetImageBuffer(BYTE *pImageMem);
函数功能: 采集一帧RGB24图像到内存
pImageMem: 图像缓冲区指针
C#调用:
[DllImport("devwdm.dll")]
public static extern int devwdm_GetImageBuffer(IntPtr pImageMem);
于是报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
求助于大家,根据大家的意见,把API中的 BYTE* 转换到C#中,分别用 byte[] 、IntPtr 、ref byte[]、 ...甚至用unsafe了,可是还是报错,有人说内存不够大,于是我非配了很大的内存,扔报错...
万般无奈,去C++的示例程序中看,示例程序中调用该函数没有任何问题。
谁能帮助我一下啊,感谢万分啊