我用这个回调函数能到每一帧采集到的图像,图像数据存在LPVIDEOHDR 类型的变量lpVHdr-〉lpData对象中,LPVIDEOHDR 是一个结构体,lpData是LpBYTE类型的我想用SOCKET的函数sendto发送出去,
int sendto(SOCKET s, const char* buf, int len, int flags, const struct sockaddr* to, int tolen);这是sendto的定义,第二个参数类型是char*,可我得到的图像数据是LpBYTE类型的,怎么办啊?我用强制转换发的是乱码,请高手指教。
int sendto(SOCKET s, const char* buf, int len, int flags, const struct sockaddr* to, int tolen);这是sendto的定义,第二个参数类型是char*,可我得到的图像数据是LpBYTE类型的,怎么办啊?我用强制转换发的是乱码,请高手指教。
解决方案 »
- 用CEdit,CRichEdit,CList,还是自己画?问题内详.
- 怎么样设置GroupBox :当移动单个 GroupBox 控件时,它包含的所有控件也随之移动
- 怎样将EXE中的全局变量共享给DLL使用?????
- 如何解决这个小问题啊?很弱地问一声
- 怎么在VC环境下用语句来连接MYSQL和查询MYSQL?
- ★打破脑袋想不通★,很简单的SQL语句,在VC+ADO里面查询结果记录0条,在查询分析器里执行却有一条?
- 怎样用mscomm控件发送大于128的ASCII码?在线等!
- 谁能告诉我如何改变状态栏里的文字颜色,我愿意出100分!
- DirectX 里 x + y * (ddsd.lPitch >> 1)谁个我详细解释解释!
- vs2010的一个错误
- 基于对话框程序的窗体重绘
- 如何在静态函数中使用与控件关联的变量
之所以不对,是因为这个数据不包括图象头,你接收方必须有图像头BITMAPINFO,这个指针指的纯粹是图象的数据.转一段我写的给你看.
CMyMultTrans* pThis = (CMyMultTrans*) capGetUserData(hWnd);
if(pThis != NULL)
{
Bitmap* pTmpBitmap = Bitmap::FromBITMAPINFO(&pThis->m_BmpInfo, lphdr->lpData);
BYTE* pFrameData = (BYTE*) pThis->m_FrameBuf.Tail;
if(!pThis->m_SendImage.MultTranImageData(pFrameData, pTmpBitmap))
{
delete pTmpBitmap;
PostMessage(hWnd, WM_CLOSE, 0, 0);
return FALSE;
}
pFrameData += *((DWORD*) pFrameData);
delete pTmpBitmap; pThis->m_FrameBuf.TailLength = pFrameData - (BYTE*) (pThis->m_FrameBuf.Tail);
if(pThis->m_FrameBuf.TailLength > sizeof(DWORD))
{
//发送数据
if(!TransmitFile(pThis->m_Socket, NULL, 0,
pThis->m_FrameBuf.TailLength,
NULL, &pThis->m_FrameBuf, TF_USE_KERNEL_APC))
{
PostMessage(hWnd, WM_CLOSE, 0, 0);
return FALSE;
}
}
}