Implement_dyncreate 시 메모리 누수 문제가 있습니까?

다음은 실제로 구현할 때 메모리 누수 문제를 해결하는 데 도움이 될 수 있는 몇 가지 간단한 단계입니다.

승인됨

<리>1. Restoro 소프트웨어 다운로드 및 설치
  • 2. 프로그램을 실행하고 화면의 지시를 따릅니다.
  • 3. 스캔 및 복원하려는 장치를 선택한 다음 "스캔"을 클릭하십시오.
  • 이 빠르고 쉬운 다운로드로 오늘 컴퓨터의 속도를 향상시키십시오.

    Visual Studio(저는 2010을 사용하고 있지만 어떻게든 버전도 시도했습니다) 다른 사람들은 여전히 ​​IMPLEMENT_DYNCREATE 매크로를 실행하는 클래스의 낚싯줄에서 메모리 누수를 사용한다고 말합니다.

    모든 MFC 대화 응용 프로그램을 쉽게 만들 수 있습니다.ClassWizard를 사용하여 CWinThread에서 파생된 묶음 추가:

    클래스 CMyThread: 공개 CWinThread  DECLARE_DYNCREATE(CMonThread)보호:      CMyThread(); // Strong Creation에서 사용하는 안전한 생성자공공의:   가상 BOOL InitInstance();    가상 간격 ExitInstance();보호:    DECLARE_MESSAGE_MAP();
    #include "stdafx.h"#include "TestProject.h"#include "MyThread.h"#ifdef DEBUG_NEW#undef_debug#THIS_FILE 정의정적 기호 THIS_FILE[] = __FILE__;#끝나면// CMyThreadIMPLEMENT_DYNCREATE(CMyThread, CWinThread)CMyThread:: CMyThread()BOOL CMyThread::InitInstance()    // DO: 여기서 라인 초기화를 수행합니다.    TRUE를 반환합니다.int CMyThread::ExitInstance()    // DO: 여기에서 각 스레드를 정리합니다.    CWinThread::ExitInstance()를 반환합니다.BEGIN_MESSAGE_MAP(CMyThread, CWinThread)END_MESSAGE_MAP()// CMyThread 마인드 핸들러

    implement_dyncreate 메모리 누수

    클래스 CThreadAbstract: 공개 CWinThread공공의:    디지털 BOOL InitInstance()는 0을 의미합니다.    메일 ExitInstance() = 0;;

    그리고 CThreadAbstract에서 CWinThread와 같이 파생된 실제 대신 새 클래스를 조정합니다.

    클래스 CMyThread: 여러 번 공개 CThreadAbstract    DECLARE_DYNCREATE(CMonThread)보호:    CMyThread(); // 동적 생성이 적용되는 생성자공공의:    꽤 BOOL InitInstance();    거대한 종류의 전자 정수 ExitInstance();보호:    DECLARE_MESSAGE_MAP();

    이제 클래스의 대화(OnInitDialog)에서 자신의 스레드를 인스턴스화하고 종료합니다.

    승인됨

    거북이처럼 돌아가는 PC가 지겹습니까? 느리고 충돌하며 오류가 발생하기 쉬운가요? 자, 두려워하지 마십시오! Restoro이 구출하러 왔습니다! 이 소프트웨어는 일반적인 Windows 오류를 빠르고 쉽게 복구하고 최대 성능을 위해 시스템을 최적화하며 파일 손실 및 맬웨어로부터 사용자를 보호합니다. 심호흡을 하고 편안히 앉아 Restoro이 모든 것을 처리하도록 하십시오. 컴퓨터가 곧 새 것처럼 실행됩니다!


    CMyThread(비어 있음) pMyThread는 (CMyThread *)AfxBeginThread(RUNTIME_CLASS(CMyThread),0,0,CREATE_SUSPENDED)와 같습니다.if(pMyThread)    pMyThread->m_bAutoDelete = false;    pMyThread->ResumeThread();if(pMyThread)    pMyThread->PostThreadMessage(WM_QUIT, 2, 0);    pMyThread는 NULL을 의미합니다.

    이 디버거에서 애플리케이션을 실행하고 확인을 클릭(또는 Esc 키를 누름)하여 비활성화합니다.

    implement_dyncreate 마인드 누수

    IMPLEMENT_DYNCREATE(CMyThread, CWinThread)

    여기서 IMPLEMENT_DYNCREATE와 함께 무슨 일이 일어나고 있는지 정확히 알지 못합니다. 나는 MSDN 파일을 찾았고 매크로가 왜 이 조건 클래스의 인스턴스를 생성하는지 보았으므로 이 고유한 항목이 실제로 효과적으로 정리되지 않는다고 가정하지만 구체적으로 잘 모르겠습니다. 그것이 어떻게 될 것입니다.

    <테이블 가독성 데이터 테이블="0">

    <센터>