请帮我看看错在那里,谢谢

roline 2006-10-16 01:50:50
//在这个线程往另一个类的函数AnalyzeData(BYTE *recvBuffer)中传递数组指针,可是运行时在AnalyzeData函数中,第一条语句就会出错。大家有知道问题出在哪里的么?
DWORD WINAPI CLinkView::RecvThread(LPVOID lpParameter)
{
SOCKET socketRecv = (SOCKET)lpParameter;
char recvBuffer[255]={0};
BYTE recvB[255]={0};
while(1)
{
if(SOCKET_ERROR != recv(socketRecv, recvBuffer, 255, 0))
{
#ifdef _DEBUG
AfxMessageBox("接收数据成功!");
#endif
for(int i=0; i<255; i++)
{
recvB[i] = recvBuffer[i];
}

CBaseDrawView *m_pBaseDrawView;
m_pBaseDrawView->AnalyzeData(recvB);//解包

FILE *pFile = fopen("C:\\cjdz.bin", "ab");
fwrite(recvB, 1, sizeof(recvB), pFile);
fclose(pFile);
memset(recvB, 0, 255);
memset(recvBuffer, 0, 255);
}
}
return 0;
}

void CBaseDrawView::AnalyzeData(BYTE *recvBuffer)
{
CDC *pDC =GetDC();//在这里就错了,说是某内存access violation, 我试过,我传空数组的指针就没错,不知道为什么
...全文
84 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
roline 2006-10-16
  • 打赏
  • 举报
回复
那么这个指针该如何初始化呢?
vcnewer 2006-10-16
  • 打赏
  • 举报
回复
CBaseDrawView *m_pBaseDrawView;
m_pBaseDrawView->AnalyzeData(recvB);//解包
----------------------
m_pBaseDrawView 是个未初始化的局部变量,不出错才怪

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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