//回调函数
static LRESULT CALLBACK FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr)
{
capGetVideoFormat(m_hVideo,&bmpInfo,sizeof(BITMAPINFO));
avpicture_fill((AVPicture*)formatted_picture,lpVHdr->lpData, PIX_FMT_YUYV422, IMAGE_WIDTH, IMAGE_HEIGHT);
//把YUY2 -->转换成  PIX_FMT_YUV420P
if (img_convert((AVPicture*)picture, in_c->pix_fmt, (AVPicture*)formatted_picture, PIX_FMT_YUYV422,IMAGE_WIDTH, IMAGE_HEIGHT) < 0)
{
return FALSE;
}

int ut_size;
ut_size = avcodec_encode_video(in_c, outbuf, outbuf_size, picture); //图象编码

    int got_picture;

long len = avcodec_decode_video(out_c,out_picture, &got_picture, outbuf, ut_size); //解码

img_convert((AVPicture*)rgb_picture,PIX_FMT_YUYV422, (AVPicture*)out_picture,PIX_FMT_YUV420P ,IMAGE_WIDTH, IMAGE_HEIGHT);
    
avpicture_layout((AVPicture*)rgb_picture,PIX_FMT_YUYV422,IMAGE_WIDTH, IMAGE_HEIGHT,outbuf2,outbuf_size2);

hdd =::DrawDibOpen(); ::DrawDibBegin(hdd,GetDC(m_vVideo2),352,288,&bmpInfo.bmiHeader,352,288,DDF_BACKGROUNDPAL);
 
::DrawDibDraw(hdd,GetDC(m_vVideo2),0,0,-1,-1,&bmpInfo.bmiHeader,rgb_picture->data[0],0,0,352,288,DDF_HALFTONE);

return TRUE;
}
这是我的回调函数 里面调用了DrawDibDraw函数 可是运行时这个DrawDibDraw不执行,总报错 请高手指点