内存泄露的问题???? 我在线程里面定义CString类对象来进行字符操作,但是就会出现STRCORE.CPP文件出现内存泄露的错误,但是删除了这些CString类对象就没有这个错误了,请问为什么不能在自己定义的工作线程里面定义CString类对象???请高手指教,谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CString对象作为局部变量,没有问题把 注意线程的退出方法, TerminateThread 就不会释放CString动态分配的内存正确的方法应该在线程函数里面 return以下是测试代码BOOL bBreak = FALSE;DWORD __stdcall ThreadFun(VOID * p) { AA a; int b; while(1) { Sleep(1); b = a.asd(); if(bBreak) break; } return 0; } void CstdDlg::OnBnClickedButton30(){ HANDLE hThread; bBreak = FALSE; hThread = CreateThread(NULL, 0, ThreadFun, 0, 0, NULL); Sleep(100);// TerminateThread(hThread, 0); bBreak = TRUE;}如果用的是 TerminateThread 就不会调用类AA的释构函数如果 用return 就会调用释构函数, 内存也就释放了 那样你的线程也不会正常退出吧,自然内存就得不到释放了.应该在主线程退出时先用WaitForSingleObject等待子线程退出. 关于vc使用odbc连接mysql开发的问题 请问用socket()可以抓到arp包吗? WDM驱动中如何处理字符串 >>倾囊求解,某企业中服务器采用Windows2009+AD(域)... adobe acrobat完整版有得下吗? 求救 关于ODBC管理ACCESS数据库 的图片数据问题???? 如何在程序中导入标准图标(32*32)以外的图标资源! 关于打印机的问题? vc中的怎么截获不到消息???请求高手相助,高分相赠!!! 问两个函数!!!! MFC编程遇到的问题,高手请进 成功编译winpcap的朋友进来帮忙一下!(在线等)
DWORD __stdcall ThreadFun(VOID * p)
{
AA a;
int b;
while(1)
{
Sleep(1);
b = a.asd();
if(bBreak)
break;
} return 0;
} void CstdDlg::OnBnClickedButton30()
{
HANDLE hThread;
bBreak = FALSE;
hThread = CreateThread(NULL, 0, ThreadFun, 0, 0, NULL);
Sleep(100);
// TerminateThread(hThread, 0);
bBreak = TRUE;
}
如果用的是 TerminateThread 就不会调用类AA的释构函数
如果 用return 就会调用释构函数, 内存也就释放了