VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
VC6.0编译问题

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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);



相关文章

相关软件