MFC线程处理遇到了问题

shemeets 2009-07-16 11:16:38

小弟是新手,对MFC也不是很熟悉,想请大家帮帮忙
最近遇到一个问题,关于线程调用的,debug的时候出现如下错误:
Cxx0017:Error:symbol "this" not found

还会出现如下:
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\setupapi.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\secur32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
Loaded symbols for 'C:\WINDOWS\system32\MFC42D.DLL'
Loaded symbols for 'C:\WINDOWS\system32\MSVCRTD.DLL'
Loaded symbols for 'C:\WINDOWS\system32\MFCO42D.DLL'
Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\lpk.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\mfc42loc.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\comctl32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\uxtheme.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\MSCTF.dll', no matching symbolic information found.
Loaded 'C:\Program Files\Tencent\SSPlus\SPlus.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\ole32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\oleaut32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\shlwapi.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\ws2_32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\ws2help.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\version.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\shell32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\MSCTFIME.IME', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\wintrust.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\crypt32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msasn1.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\imagehlp.dll', no matching symbolic information found.
Detected memory leaks!
Dumping objects ->
E:\usb\SJCJVC\SJCJVCDlg.cpp(394) : {115} normal block at 0x003D6150, 2 bytes long.
Data: < > B1 82
E:\usb\SJCJVC\SJCJVCDlg.cpp(370) : {112} normal block at 0x003D6080, 2 bytes long.
Data: < > B1 A2
E:\usb\SJCJVC\SJCJVCDlg.cpp(347) : {109} normal block at 0x003D5C68, 2 bytes long.
Data: < > B1 00
E:\usb\SJCJVC\SJCJVCDlg.cpp(265) : {106} normal block at 0x003D5E28, 256 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
E:\usb\SJCJVC\SJCJVCDlg.cpp(265) : {103} normal block at 0x003D5CE0, 256 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
E:\usb\SJCJVC\SJCJVCDlg.cpp(188) : {76} normal block at 0x003D4E58, 2200 bytes long.
Data: < W= > 98 57 3D 00 00 00 00 00 00 00 00 00 00 00 00 00
Object dump complete.
The thread 0xDBC has exited with code 2 (0x2).
The program 'E:\usb\SJCJVC\Debug\SJCJVC.exe' has exited with code 2 (0x2).


程序如下:
void CSJCJVCDlg::OnButton2()
{
// TODO: Add your control notification handler code here
if (ReadThread)
{
ReadThreadLooping = false;
ReadThread=NULL; //线程结束
SetDlgItemText(IDC_EDIT1,"传输完毕!");
}
else
{
if (USBDevice->IsOpen()) { //检测USB是否打开
ReadThreadLooping = true;
// DWORD dwParam;
ReadThread = AfxBeginThread(ReadThreadLoop,this); //开启线程
SetDlgItemText(IDC_EDIT1,"正在传输!");
}
}
}

UINT ReadThreadLoop( LPVOID params ) { //线程处理
bool okin;
CSJCJVCDlg *dlg = (CSJCJVCDlg *) params;
OVERLAPPED inOvLap;
PUCHAR inData = new UCHAR[512]; //数据缓冲区
ZeroMemory(inData,1024);
inOvLap.hEvent = CreateEvent(NULL, false, false, "CYUSB_IN");
UCHAR eptAddr = 0x82;
dlg->InEndpt=dlg->USBDevice->EndPointOf(eptAddr);
dlg->InEndpt->TimeOut = 10;

for (;dlg->ReadThreadLooping;) //循环
{
LONG inlen=512;
//异步读数据
UCHAR *inContext = dlg->InEndpt->BeginDataXfer(inData,inlen,&inOvLap);
dlg->InEndpt->WaitForXfer(&inOvLap,200);
okin = dlg->InEndpt->FinishDataXfer(inData,inlen, &inOvLap,inContext);
if (okin) //如果读取成功,则保存数据
{
mFile.SeekToEnd();
mFile.Write(inData,inlen);
}
}
//结束Start
ept->Target = TGT_DEVICE;
ept->ReqType = REQ_VENDOR;
ept->Direction = DIR_TO_DEVICE;
ept->ReqCode = 0xB1; //请求码
ept->Value = 0;
ept->Index = 0;

PUCHAR buf=new UCHAR[2];
ZeroMemory(buf, 2);
LONG buflen = 2;
buf[0]=0xB1;
buf[1]=0x00; //结束Start
ept->XferData(buf,buflen);

CloseHandle(inOvLap.hEvent);

delete [] inData;
dlg->ReadThread = NULL; //线程结束

dlg->USBDevice->Close(); //关闭USB设备

mFile.Flush(); //关闭文件
mFile.Close();

return true;
}
...全文
153 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
估计是不是你这个是release模式下吧?建议你在debug模式下进行调试
Yhzhtk 2009-07-16
  • 打赏
  • 举报
回复
看看啊
codecola 2009-07-16
  • 打赏
  • 举报
回复
内存泄漏了

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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