请帮我看看错在哪里,谢谢拉`~~`

roline 2006-10-16 01:50:23
//在这个线程往另一个类的函数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, 我试过,我传空数组的指针就没错,不知道为什么
...全文
118 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
roline 2006-10-16
  • 打赏
  • 举报
回复
老兄啊,会报错说,GetActiveView is not a member of 'CWnd'
怎么办啊`~`
mynamelj 2006-10-16
  • 打赏
  • 举报
回复
CBaseDrawView *m_pBaseDrawView = (CBaseDrawView*)AfxGetMainWnd()->GetActiveView();
roline 2006-10-16
  • 打赏
  • 举报
回复
我这样初始化:CBaseDrawView *m_pBaseDrawView = new CBaseDrawView ;
之后,依然有问题啊,难道两个类之间就不能传参数么??郁闷,我试了一下,在
CBaseDrawView类中穿参数给他自己的函数就不会出错`~
qzynm 2006-10-16
  • 打赏
  • 举报
回复
不好意思,看错了,同意夏娃的诱惑的说话
qzynm 2006-10-16
  • 打赏
  • 举报
回复
你这个DWORD WINAPI CLinkView::RecvThread(LPVOID lpParameter)应该是一个static的成员函数吧,没有this指针,当然不能用m_pBaseDrawView这个成员变量。
建议你把CLinkView类的pointer在作为线程参数,通过这个线程函数使用m_pBaseDrawView
roline 2006-10-16
  • 打赏
  • 举报
回复
可是,我该如何去初始化他呢?
mynamelj 2006-10-16
  • 打赏
  • 举报
回复
CBaseDrawView *m_pBaseDrawView; // 这个指针对象没有分配内存
m_pBaseDrawView->AnalyzeData(recvB);//解包
vcnewer 2006-10-16
  • 打赏
  • 举报
回复
CBaseDrawView *m_pBaseDrawView;
m_pBaseDrawView->AnalyzeData(recvB);//解包
----------------------
m_pBaseDrawView 是个未初始化的局部变量,不出错才怪

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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