程序在运行时自动关闭!(视频图像采集及处理结合串口通讯的程序)
本人最近在做一个视频采集的程序,现在已经能很好的接受到摄像头摄到的图像,由于要在采集到的图像上叠加上相关画面,因此我在视频窗口上创建了一个与该图像同样大小的对话框,将该对话框处理为透明的,这样对图像的处理就可以通过对对话框的处理来实现。
由于还要和单片机交联,要实时的接受串口信号,对单片机进行定时,可设置每30ms接受一次字符串(3个字符),这些都在透明的对话框过程中实现的,在接受串口字符串时遇到如下问题:
运行时程序自动关闭!如果单片机不发送或一次发送一个字符则没有这种现象。请各位不吝赐教!
另外,对接收到的图像进行处理各位还有没有什么更好的方法?
串口事件函数如下:
int m1,m2,m3;//全局变量
BOOL h=FALSE,h1=FALSE;//全局变量
void CTestDlg::OnOnCommMscomm1()
{
// TODO: Add your control notification handler code here
VARIANT vResponse;
int k,i=0,event;
char *str;
char str1[10];
char *str2;
HWND pWnd=NULL;
event=m_Com.GetCommEvent();
switch(event)
{
case 2:
k=m_Com.GetInBufferCount();
if(k>0)
{
m_Com.SetInputLen(k);
vResponse=m_Com.GetInput();
str=(char*)(unsigned char*)vResponse.parray->pvData;
str2=str;
while(i<k)
{
i++;
str2++;
}
*str2='\0';
break;
}
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
}
for(i=0;i<k;i++)
str1[i]=str[i];
if(str1[0]==18)//18为握手字节
{
m1=(int)str1[0];
m2=(int)str1[1];
m3=(int)str1[2];
h=TRUE;//h,h1表示接受串口信号后进行的相应处理
h1=TRUE;
InvalidateRect(NULL,TRUE);
}
}