Memory Leak

di il
5 risposte

Memory Leak

Ho delle memory leak e non capisco da dove provengano visto che ho distrutto tutti i puntatori, a questo punto ho il dubbio che vengano da questo pezzo di codice:

	CDC*  pDC = CDC::FromHandle(pCD->nmcd.hdc);
			CRect rcIcon;
			GetItemRect(nItem, &rcIcon, LVIR_ICON);
		
			*pResult = CDRF_SKIPDEFAULT;

il puntatore pDC va deallocato? se sì in quale modo?

Ho provato a scrivere pDC->Delete() ma non vedo più i disegni..

5 Risposte

  • Re: Memory Leak

    Se vuoi che qualcuno tenti di rispondere devi mostrare i messaggi completi relativi alla segnalazione

  • Re: Memory Leak

    24/03/2025 - oregon ha scritto:

    Se vuoi che qualcuno tentando rispondere devi mostrare i messaggi completi relativi alla segnalazione

    ho questo tipo di memory leaks:

    Dumping objects ->
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5712} normal block at 0x01C2A018, 38 bytes long.
     Data: < % {            > B0 25 A8 7B 0A 00 00 00 0A 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5710} normal block at 0x01C2A6A0, 38 bytes long.
     Data: < % {            > B0 25 A8 7B 0A 00 00 00 0A 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5517} normal block at 0x01B72A70, 20 bytes long.
     Data: < % {            > B0 25 A8 7B 00 00 00 00 01 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5514} normal block at 0x01B72930, 20 bytes long.
     Data: < % {            > B0 25 A8 7B 00 00 00 00 01 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5502} normal block at 0x01C2A648, 40 bytes long.
     Data: < % {            > B0 25 A8 7B 0B 00 00 00 0B 00 00 00 01 00 00 00 
    {5478} normal block at 0x11C40068, 18432 bytes long.
     Data: <    q>(i 95}r   > 00 00 00 00 71 3E 28 69 03 39 35 7D 72 07 1D 14 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5470} normal block at 0x01C29BF8, 38 bytes long.
     Data: < % {            > B0 25 A8 7B 0A 00 00 00 0A 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5468} normal block at 0x01C2A9B8, 38 bytes long.
     Data: < % {            > B0 25 A8 7B 0A 00 00 00 0A 00 00 00 01 00 00 00 
    {5465} normal block at 0x01C2AB20, 2608 bytes long.
     Data: <        X       > B8 A7 C2 01 E8 E3 BE 01 58 C4 B7 01 C8 A9 C2 01 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5274} normal block at 0x01B7C748, 20 bytes long.
     Data: < % {            > B0 25 A8 7B 00 00 00 00 01 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5271} normal block at 0x01B7C448, 20 bytes long.
     Data: < % {            > B0 25 A8 7B 00 00 00 00 01 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5259} normal block at 0x01C2A7A8, 40 bytes long.
     Data: < % {            > B0 25 A8 7B 0B 00 00 00 0B 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5227} normal block at 0x01C2A858, 38 bytes long.
     Data: < % {            > B0 25 A8 7B 0A 00 00 00 0A 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5225} normal block at 0x01C2A6F8, 38 bytes long.
     Data: < % {            > B0 25 A8 7B 0A 00 00 00 0A 00 00 00 01 00 00 00 
    {5222} normal block at 0x11C55FF8, 2608 bytes long.
     Data: <`       @       > 60 A7 C2 01 88 DF BE 01 40 20 B7 01 08 A7 C2 01 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5031} normal block at 0x01B721B0, 20 bytes long.
     Data: < % {            > B0 25 A8 7B 00 00 00 00 01 00 00 00 01 00 00 00 
    f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {5028} normal block at 0x01B72030, 20 bytes long.
  • Re: Memory Leak

    Piuttosto difficile da dire ... 

    Può essere di tutto, puntatori ad array oppure ad oggetti liberati più volte o sovrascritti ... direi impossibile senza controllare il codice mentre viene eseguito controllandolo tutto.

  • Re: Memory Leak

    24/03/2025 - oregon ha scritto:

    Piuttosto difficile da dire ... 

    Può essere di tutto, puntatori ad array oppure ad oggetti liberati più volte o sovrascritti ... direi impossibile senza controllare il codice mentre viene eseguito controllandolo tutto.

    C'è un modo per capire da dove viene la memory leak?

  • Re: Memory Leak

    Dovresti usare un debugger e sapere cosa fare mentre viene eseguito il codice, passo passo, con l'aiuto di breakpoint, tempo e pazienza.

Devi accedere o registrarti per scrivere nel forum
5 risposte