Bonjour,
j'ai réalisé un programme de traitement de video sur XP
Il marchait sans probleme , depuis j'ai acheter un nouveau pc , je suis passé sous vista et la mon programme ne veut plus marcher.
Il affiche bien la video mais par exemple lorsque je lance ma fonction erosion il me met une erreur de type:
Exception non gérée à 0x004146d1 dans CaptureVideo.exe*: 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x03dd7001.

mon programme bloque ici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
LPVOID CALLBACK CCaptureVideoDlg::EROSION(HWND hWndC, LPVIDEOHDR pV)
{
long p,i,j,c,l,cc,ll;
    long Taille = pDial->m_largeur * pDial->m_hauteur;

    int tc,tl;
    tc=1;
    tl=1;
    BYTE min;

    // passage en niveau de gris
    BYTE *pImNb;
    pImNb=(BYTE *) malloc(Taille);
    BYTE *pTemp;
    pTemp=(BYTE *) malloc(Taille);
    i=0;
for (j=0;j<Taille;j++) 
    {
    ici->    pImNb[j]=(pV->lpData[i]+pV->lpData[i+1]+pV->lpData[i+2])/3.0;
        i+=3;
        pTemp[j]=0;
    }
for (l=tl;l<pDial->m_hauteur-tl-1;l++)
    {
        for (c=tc;c<pDial->m_largeur-tc-1;c++)
        {
            min=255;
            for (ll=l-tl;ll<=l+tl;ll++)
            {
                for (cc=c-tc;cc<=c+tc;cc++)
                {
                    p=pDial->m_largeur*(ll)+cc;
                    if (pImNb[p]<min) min = pImNb[p];
                }
            }
            pTemp[pDial->m_largeur*l+c]=min;
        }
    }

    
    i=0;
    for (j=0;j<Taille;j++)
    {
ici->    pV->lpData[i]=pTemp[j];
        pV->lpData[i+1]=pTemp[j];
        pV->lpData[i+2]=pTemp[j];
        i+=3;
    }
    free(pImNb);
    free(pTemp);
    return 0;
}
je n'arrive vrt pas a resoudre cette erreur.Si quelqu'un sait resoudre de probleme merci de son aide.

pense à utiliser la balise de code, Merci Farscape