阅读:1700回复:10
求救:CreateThread就直接关闭应用程序
我的语句如下:
void CMonitorDlg::OnButton1() { DWORD pcThreadID=0; m_hThread=CreateThread(NULL,0,LonRead,LPVOID(this),0,&pcThreadID); if(m_hThread) { //不能创建线程 MessageBox (_T(\"Unable to create the read thread\")); DWORD dwError = GetLastError (); } } 头文件里声明如下: protected: static DWORD WINAPI LonRead(LPVOID lpvoid); DWORD LonRead (void); 只要点击button1,程序立刻关闭,如果在createthread前加“::”则系统提示:Assertion Failed! Wincore.cpp Line 1047 |
|
沙发#
发布于:2005-03-31 09:06
protected:
static DWORD WINAPI LonRead(LPVOID lpvoid); DWORD LonRead (void); 总感觉挺别扭!查查CreateThread的例子吧 |
|
板凳#
发布于:2005-03-31 11:42
说的详细点。。环境,,开发工具。
驱动程序,还是应用程序。。。。。 |
|
地板#
发布于:2005-03-31 16:57
说的详细点。。环境,,开发工具。 \"void CMonitorDlg::OnButton1() \", 肯定是MFC或ATL\\WTL应用程序了. [编辑 - 3/31/05 by maqian] |
|
|
地下室#
发布于:2005-03-31 17:00
sdqdydj:你不把LonRead贴出来,让人怎么帮你?
|
|
|
5楼#
发布于:2005-03-31 20:02
Cnewdilog g_aircon;
//LonRead是在定时器中建立的一个线程,我这样做为什么要么运行出错,关闭应用程序 要么根本不执行singleaircon() //singleaircon是newdialog窗体中的数据处理函数 DWORD WINAPI CMainDlg::LonRead(LPVOID lpArg) { // Route the method to the actual object CMainDlg* pThis = reinterpret_cast<CMainDlg*>(lpArg); return pThis->LonRead(); } DWORD CMainDlg::LonRead() { if(pc104interval) { for(int sss=0;sss<100;sss++) g_aircon.airdata[sss]=data[sss+0x80*j]; if(g_aircon.m_hWnd!=NULL) { g_aircon.singleaircon(); } } pc104interval=FALSE; return 0; } |
|
6楼#
发布于:2005-04-01 08:20
你挤牙膏似的,问一下贴两行代码.
检查一下\"g_aircon.airdata[sss]=data[sss+0x80*j]; \". 你看看data[sss+0x80*j]或g_aircon.airdata[sss]是不是内存访问越界. |
|
|
7楼#
发布于:2005-04-01 08:41
两个数组定义如下:public: BYTE data[0xfff],indata[128];
没有用malloc作内存分配,就会产生内存访问过界的情况? |
|
8楼#
发布于:2005-04-01 08:51
你挤牙膏似的,问一下贴两行代码.
检查一下\"g_aircon.airdata[sss]=data[sss+0x80*j]; \". 你看看data[sss+0x80*j]或g_aircon.airdata[sss]是不是内存访问越界. j的值?airdata的定义???你代码不全贴出来,我不知道问题是不是在这里,你调试一下不就知道了. 内存访问过界跟malloc没有必然联系. |
|
|
9楼#
发布于:2005-04-01 11:21
我屏掉这一行就好了 g_aircon.singleaircon(); 所以与数组的赋值没有关系;但是就无法处理数据了。
不好意思!代码太长,只能把一部分修整出来才能贴! |
|
10楼#
发布于:2005-04-01 11:40
搞不懂你,\"要么根本不执行singleaircon()\"???
把singleaircon()贴出来吧.趁中午没事,给你看看. |
|
|