由于本人以前是做BS程序的,故对Form编程没什么太多的经验现在有一个摄像头捕捉图像,应用程序显示图片的项目
该项目上调用Vc++编写的DLL实现图片的显示,基本有一个API:
/*
*函数说明:在指定的窗口绘图,该函数不支持缩放,但效率高,CPU占用率小
*输入参数:
*hDraw: 绘图对象句柄。
*pBits: 图像数据缓冲区地址。
*nSize 图像数据缓冲区大小。
*nLeft: 图像在窗体显示时,左上角相对于窗体客户区的横坐标
*nTop: 图像在窗体显示时,左上角相对于窗体客户区的纵坐标
*输出参数: 无
*/
DRAWUTIL_API
void __stdcall FD_DrawActualImage(HANDLE hDraw, PVOID pBits, UINT nSize, int nLeft, int nTop);我需要用C#调用这个方法来显示图片:
[DllImport("DrawUtil.dll")]
public static extern void FD_DrawActualImage(IntPtr hDraw, IntPtr pBits, UInt32 nSize, Int32 nLeft, Int32 nTop);现在的问题是,我不知道如何显示图片,请高手给点提示(最好给点关键代码)
1.图片应该显示到什么控件上?(Panel?)2.IntPtr hDraw这个设备的句柄是什么?是不是控件的panel1.handle?
我使用这个值传给DLL函数,报错:
未处理 System.AccessViolationException
Message="尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"
Source="FCAMViewerMessage_CSharp"
StackTrace:
在 FCAMViewerMessage_CSharp.DrawUtil_Invoke.FD_DrawActualImage(IntPtr hDraw, IntPtr pBits, UInt32 nSize, Int32 nLeft, Int32 nTop)
在 FCAMViewerMessage_CSharp.Form1.MyCallBackFunction(IntPtr pCommuParam) 位置 E:\AL_Project\FCAMViewerMessage_CSharp\FCAMViewerMessage_CSharp\Form1.cs:行号 409
InnerException:
该项目上调用Vc++编写的DLL实现图片的显示,基本有一个API:
/*
*函数说明:在指定的窗口绘图,该函数不支持缩放,但效率高,CPU占用率小
*输入参数:
*hDraw: 绘图对象句柄。
*pBits: 图像数据缓冲区地址。
*nSize 图像数据缓冲区大小。
*nLeft: 图像在窗体显示时,左上角相对于窗体客户区的横坐标
*nTop: 图像在窗体显示时,左上角相对于窗体客户区的纵坐标
*输出参数: 无
*/
DRAWUTIL_API
void __stdcall FD_DrawActualImage(HANDLE hDraw, PVOID pBits, UINT nSize, int nLeft, int nTop);我需要用C#调用这个方法来显示图片:
[DllImport("DrawUtil.dll")]
public static extern void FD_DrawActualImage(IntPtr hDraw, IntPtr pBits, UInt32 nSize, Int32 nLeft, Int32 nTop);现在的问题是,我不知道如何显示图片,请高手给点提示(最好给点关键代码)
1.图片应该显示到什么控件上?(Panel?)2.IntPtr hDraw这个设备的句柄是什么?是不是控件的panel1.handle?
我使用这个值传给DLL函数,报错:
未处理 System.AccessViolationException
Message="尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"
Source="FCAMViewerMessage_CSharp"
StackTrace:
在 FCAMViewerMessage_CSharp.DrawUtil_Invoke.FD_DrawActualImage(IntPtr hDraw, IntPtr pBits, UInt32 nSize, Int32 nLeft, Int32 nTop)
在 FCAMViewerMessage_CSharp.Form1.MyCallBackFunction(IntPtr pCommuParam) 位置 E:\AL_Project\FCAMViewerMessage_CSharp\FCAMViewerMessage_CSharp\Form1.cs:行号 409
InnerException:
这个应该是一个Graphics的Handle
能否详细点?是不是在Panel上创建一个Graphics的对像,
再把这个绘图对像的句柄传给API?能给两行关键代码吗?
http://topic.csdn.net/u/20091202/12/e485aa77-df7e-4026-b46e-e4b63feca911.html?85185