C#调用动态链接库DLL报错

Badzpp 2013-12-27 03:26:17
我的程序中有如下代码:
public Rectangle SetOutPutWindow(IntPtr m_pHandle, HV_RESOLUTION m_kResolotion, Rectangle m_OutPutWindow)//设置图像输出(Output)窗口
{
System.Diagnostics.Debug.Assert(m_pHandle != IntPtr.Zero);

IntPtr buffer = new IntPtr();
int size = 0;
HVSTATUS status = USBCameraAPI.HVGetDeviceInfo(m_pHandle, HV_DEVICE_INFO.DESC_RESOLUTION, buffer, ref size);

buffer = Marshal.AllocHGlobal(size);
status = USBCameraAPI.HVGetDeviceInfo(m_pHandle, HV_DEVICE_INFO.DESC_RESOLUTION, buffer, ref size);
USBCameraAPI.HV_VERIFY(status);
int[] type = new int[64];
Marshal.Copy(buffer, type, 0, 64);
Marshal.FreeHGlobal(buffer);

m_OutPutWindow.Width = type[(int)m_kResolotion*2];
m_OutPutWindow.Height = type[(int)m_kResolotion*2+1];

status = USBCameraAPI.HVSetOutputWindow(m_pHandle, m_OutPutWindow.X, m_OutPutWindow.Y, m_OutPutWindow.Width, m_OutPutWindow.Height);
USBCameraAPI.HV_VERIFY(status);
return m_OutPutWindow;

}
大部分测试没有报错,可有的时候我再次运行提示
Marshal.Copy(buffer, type, 0, 64);尝试读取或写入受保护的内存。这通常指示其他内存已损坏
这是什么原因呢,需要怎么解决,求大神,在线等!!!
...全文
111 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Badzpp 2013-12-27
  • 打赏
  • 举报
回复
引用 1 楼 c1w9x8 的回复:
你的账号沒權限進行 读取写入操作?你要写入的文件正在被别人使用?
应该是正在被别人使用吧,应为大部分情况下是不会报错的,正常运行。怎么解决呢?
花败又谁睬 2013-12-27
  • 打赏
  • 举报
回复
你的账号沒權限進行 读取写入操作?你要写入的文件正在被别人使用?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧