typedef struct
{
CDataLocal *pLData;
CDataRemote *pRData;
}_TwoPointerStruct;void ProcessData(CDataLocal *pLData,CDataRemote *pData2)
{
_TwoPointerStruct param;
param.pLData= pLData;
param.pRData= pData2; int iDataItem = pLData->DataItem;
CString sMsg;
sMsg.Format( _T("the current data is: %d"),iDataItem); CWinThread *pThreadHangup = AfxBeginThread( (AFX_THREADPROC)HangupThread,
LPVOID(¶m),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL ); ASSERT( pThreadHangup );
if( pThreadHangup != NULL )
{
pThreadHangup->m_bAutoDelete = TRUE;
pThreadHangup->ResumeThread();
}
}void CTW8VID::HangupThread(LPVOID pParam)
{
_TwoPointerStruct *param = (_TwoPointerStruct *)pParam;
CDataLocal * pData1 = param->pLData;
CDataRemote * pData2= param->pRData; ASSERT( pData1 && pData2);
int iDataItem = pData1->DataItem; // <=======此处报指针错误,为什么啊?
}程序执行到出现对话框“the current data is 100”,
然后进入线程,线程报指针错误,
晕啊,今天脑袋里面灌水了,为什么会出现错误啊?
大家赶紧救急啊
{
CDataLocal *pLData;
CDataRemote *pRData;
}_TwoPointerStruct;void ProcessData(CDataLocal *pLData,CDataRemote *pData2)
{
_TwoPointerStruct param;
param.pLData= pLData;
param.pRData= pData2; int iDataItem = pLData->DataItem;
CString sMsg;
sMsg.Format( _T("the current data is: %d"),iDataItem); CWinThread *pThreadHangup = AfxBeginThread( (AFX_THREADPROC)HangupThread,
LPVOID(¶m),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL ); ASSERT( pThreadHangup );
if( pThreadHangup != NULL )
{
pThreadHangup->m_bAutoDelete = TRUE;
pThreadHangup->ResumeThread();
}
}void CTW8VID::HangupThread(LPVOID pParam)
{
_TwoPointerStruct *param = (_TwoPointerStruct *)pParam;
CDataLocal * pData1 = param->pLData;
CDataRemote * pData2= param->pRData; ASSERT( pData1 && pData2);
int iDataItem = pData1->DataItem; // <=======此处报指针错误,为什么啊?
}程序执行到出现对话框“the current data is 100”,
然后进入线程,线程报指针错误,
晕啊,今天脑袋里面灌水了,为什么会出现错误啊?
大家赶紧救急啊
解决方案 »
- CArray动态数组的问题!求高手指点,感激不尽
- VC音频处理
- 建议CSDN开个WTL的板块!同意的顶一下!
- 过节啦!吃粽子啦!接分啦!
- Visual Assist 6.0 怎么破戒啊,提示说找不到V6A。DLL文件,文件夹下根本就没有这个文件啊?!也没地方提示输入注册码啊?!
- 在windows2k 简体上开发的程序如何在 繁体操作系统上正常显示?
- CFile类 Copy.Open(__argv[0],CFile::modeRead)在WIN98下怎么老提示错误啊?高分在线等待
- 哪里能找到用电脑连手机发短信的API?
- 请问在程序中,如何将打开的所有文档关闭.
- 请教,请教
- 大家帮我估算下这个旅游管理系统项目要多少钱?
- 怎么继承CDatabase类呢?
ASSERT( pData1 != NULL && pData2 != NULL );
刚才写得急,写错了,请问程序错在哪里啊?
急
在函数ProcessData完成了就无效了.
可以放在外面
_TwoPointerStruct param;
void ProcessData(CDataLocal *pLData,CDataRemote *pData2)
{
{
_TwoPointerStruct* param = new _TwoPointerStruct;
param->pLData= pLData;
param->pRData= pData2; int iDataItem = pLData->DataItem;
CString sMsg;
sMsg.Format( _T("the current data is: %d"),iDataItem); CWinThread *pThreadHangup = AfxBeginThread( (AFX_THREADPROC)HangupThread,
(LPVOID)param,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL );
....}void CTW8VID::HangupThread(LPVOID pParam)
{
_TwoPointerStruct *param = (_TwoPointerStruct *)pParam;
CDataLocal * pData1 = param->pLData;
CDataRemote * pData2= param->pRData; ASSERT( pData1 && pData2);
int iDataItem = pData1->DataItem; // <=======此处报指针错误,为什么啊?
delete param;
}