angelanddelus100
Messages postés12Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention15 juillet 2007
-
9 juil. 2007 à 18:01
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
10 juil. 2007 à 16:17
Bonjour à tous,
Je dois developper un petit logiciel qui réalise ces fonctions
Lister les drivers des webcams et caméras installé le pc
Détecter les sources vidéo branchées sur l’ordinateur
Sélectionner la source vidéo à capturer
Configurer les paramètres de capture (débit images, format RGB24, I420, Résolution)
Lancer la capture vidéo
Découper la vidéo pour obtenir une Résolution carré
Redimensionner les images en 12 par 12 pixels
Appliquer un filtre noir et blanc à l’image
Pour appliquer les différents filtres sur mes images j'utilise la librairy windows system drawing. Mon programme fonctionne correctement mais au bout de quelque minutes il bug...
Message d'erreur:
Une exception non gérée du type 'System.UnauthorizedAccessException' s'est produite dans Microsoft.VisualBasic.dll
Informations supplémentaires : Accès refusé.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
La boucle de capture est la suivante et je pense qu'elle est la cause de cette erreur. Etant débutant je n'arrive pas à comprendre pourquoi (J'espere obtenir un petit d'aide pour comprendre ce probleme Merci a tous) :
Private
Sub
mWBCStream_Streamed(
ByRef
pBitMap
As
System.Drawing.Bitmap)
Handles
mWBCStream.Streamed
Compte = Compte + 1
picCur.Image = pBitMap
picCur.SizeMode = PictureBoxSizeMode.StretchImage
If
Compte = CompteRef
Then
'CompteRef = Nombre de capture de pBitMap
Compte = 0
picCur.Image.Save(FileA)
Img1.LoadFile(FileA)
''Application du filtre à l'image (couperImage)
Img1 = R11.Apply(Img1) '
''Création conteneur pour l'image à manipuler
Img2 = Img1
'Application du filtre à l'image (redimensionnerImage)
Img2 = R22.Apply(Img2)
'Verification de l'existance et destruction de la variable FileB
angelanddelus100
Messages postés12Date d'inscriptionlundi 18 juin 2007StatutMembreDernière intervention15 juillet 2007 10 juil. 2007 à 14:27
Au temps pour moi jmfmarques, cette confusion devient très claire. Elle m'apporte en plus de solution pour mon projet (thread)... Désolé pour le dérangement et pour cette mal compréhension<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 10 juil. 2007 à 16:17
Salut,
Arf. On dirait une bonne vielle segfault.
Pas moyen de récupérer plus d'infos avec le débogueur ?
Tu peux envoyer des chaines de caractères dans un fichier (Ou une console de débogage si il y a) pour cerner l'emplacement du problème si le débugueur ne s'en sort pas. Genre :
Point de contrôle
Bosse
Gauche légé
Droite dur
Freine
(Fans de V-Rally 1, bonjour !)
movdword ptr [ebp-28h],eax
C'est marrant qu'il se prenne une violation d'accès sur cette instruction... eax est toujours accessible, et ebp est pas sensé pointer dans l'hyper espace. En ebp-x, c'est génralement les variables locales aux fonctions. Donc ton ebp doit être mauvais. ebp, il lui arrive pas grand chose à part se faire empiler et dépiler en début et fin de routine :
push ebp
mov ebp, esp
...
mov esp, ebp
pop ebp
Donc de manière général, il a peu de chance que la valeur popée ne soit pas le ebp précédent. (Encore que le cas ou mov esp, ebp n'est pas employé est pas francchement rare.
Bref, il y a de bonne chance que la valeur de ebp soit celle qui se trouve à l'adresse où il a été pushé.
MAIS rien ne dit que cette valeur n'est pas changé entre temps...
Donc je dirais qu'on se trouve dans un cas de dépassement de tampon, ou des données trops grande pour rester dans l'espace réservé dans la pile sont allées recouvrir sauvagement tout ce qui se trouvait plus haut.
Une variable locale de fonction qui sert de tampon capable de contenir x octets dans lequel on met x+y octets quoi.
Si tu as une telle chose dans ton code, débouche le champomy (Vérifie tout ce qui est suceptible d'être un tampon, genre des endroits où tu as alloué 50 octets sans savoir si c'est ce qu'il allait falloire).
Dans le cas contraire, t'as lu mes divagations pour rien. Désolé.