Thread / OCX MFC/ winpcap

LittleJC Messages postés 8 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 15 octobre 2004 - 2 août 2004 à 11:49
LittleJC Messages postés 8 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 15 octobre 2004 - 12 janv. 2005 à 08:51
Bonjour,

J'ai créé un ocx MFC qui utilise wincap. Dedans j'utilise des theads pour que l'application qui utilise l'ocx (dans mon cas c'est une appli VB) ne se bloque pas pdt la reception des trames.

Lorsque je recois une trame je la traite car je dois recevoir des trame spécifique ensuite j'envoie un evenement avec les informations nécessaire (dans mon cas que des long).

Le problème vient que lorsque je mets un break point dans mon programme VB l'application plante. Après plusieurs tests .. .le pb viendrait des threads !! car l'évenement en lui même fonctionne bien, si je n'utilise pas le thread je n'ai pas de pb mise à part que l'application n'affiche pas la fenetre du au loop du winpcap.

Est ce qu'il y aurait qq chose qui lancerait un processus ?
la fonction que j'utilise est :
"AfxBeginThread".
Lorsque je lance mon processus je dois pouvoir passer en paramètre le this de ma classe pour avoir les méthodes et les champs de ma classe.

Merci d'avance

LittleJC

2 réponses

cs_Kikx Messages postés 12 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 11 janvier 2005
11 janv. 2005 à 21:07
Es tu sur que c'est pas genre un conflit de ressource ?

genre du bloque ton thread mais ton main tourne encore ... et essaye d'acceder a des variables que ton thread aurait du ecrire ?

C'est une erreur classique quand on utilise des threads mais comme j'ai pas d'info je ne fais que postuler.......

Kikx
0
LittleJC Messages postés 8 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 15 octobre 2004
12 janv. 2005 à 08:51
salut,

ba enfait j'ai résolu le pb en créant un autre ocx vb qui va lire les données que j'ai besoins après avoir eu l'événement .. car j' n'ai toujours pas trouvé comment faire !!
Car normalement les valeurs passées par événements sont par "valeur" et non pas référence !! donc il ne devrait pas avoir un pb de partage de ressources.
Ce que j'ai fais n'est pas vraiment "propre" mais ca a résolu mes pbs car avant de lire les données je fais "une sorte de sémaphore" pour bloquer les données que je vais mettre à jour pour éviter de les lire pdt ce temps la.

Si j'ai pas mis mes sources c'est que les trames que j'analyse sont des trames d'un client donc protégées.

Pour le moment le programme est mis de coté, mais j'essayerai quand j'aurai le temps de le refaire en C++.Net et si ca fonctionne correctement je pourrais modifié le prog pour qu'on ne vois plus les infos du client

Merci pour ta réponse.
0
Rejoignez-nous