欢迎访问:常州市武进区嘉泽中心小学网站 !今天是:
栏目列表
您现在的位置是:首页>>教师>>计算机技术>>程序设计>>杂项>>文章内容
VC6.0编译问题
发布时间:2008-11-20   点击:   来源:本站原创   录入者:佚名
  VC6.0编译问题
问:我用自己设计的类编了一个程序。当我在编译项中设置为debug编译时,程序运行一切正常,当为release时程序却出了问题.怎么会这样?

答:1)为什么你既建立线程又将一个类成员作为线程处理?这样的话谁来调用你的析构函数?你不能试图将文档视窗类中的成员作为线程,象这样:

Ccapi::SomeFunction()

{

AfxBeginThread(static_cast(ThreadProc(this)));

}



Ccapi::ThreadProc(LPVOID ptr)

{

// ptr and this are equal...

   Ccapi* ptrApi = (Ccapi*)ptr;

};
如果你是这样做的话可能需要做些改动
  2)显然,m_pOwner或者m_pOwner->m_hWnd是不正确的,试试下面的:
if (NULL == capi)

   ::MessageBox(NULL, "bad capi", "CapiThread", MB_OK);

else if (NULL == capi->m_pOwner)

   ::MessageBox(NULL, "bad Owner", "CapiThread", MB_OK);

else if (!::IsWindow(capi->m_pOwner->m_hWnd))

   ::MessageBox(NULL, "bad hwnd", "CapiThread", MB_OK);

附件:
    关闭窗口
    打印文档
    账号登录
    保持登录 忘记密码?
    账号与武进教师培训平台同步