Probleme fonction WaitForSingleObject lors de l'execution

thesbr Messages postés 5 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 26 août 2004 - 23 août 2004 à 16:19
thesbr Messages postés 5 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 26 août 2004 - 25 août 2004 à 13:20
bonjour a tous.

j'ai un petit soucis de comprehension. je possede VisualBasic 6 sous win2000.
je debut sous vb et je souhaite faire du MultiThread.
j'utilise les fonctions CreateThread(...) et WaitForSingleObject(...) qui fonctionnent bien.
MAIS, la fonction WaitForSingleObject(...) ne fonctionne qu'en mode 'debug'. Le code Executable genere (Natif ou P-code) entraine une erreur d'execution.
voici une partie du code de la routine du thread:

Do While loc_true
loc_dw = WaitForSingleObject(loc_ev, 200)
If loc_dw = WAIT_OBJECT_0 Then
loc_true = False
Else
If loc_dw = WAIT_TIMEOUT Then
loc_str = String(64, vbNullChar)

loc_ret = DLL_ReadDATA(loc_str)

If loc_ret = 1 Then
' print loc_str
Else
(...)
End If
End If
End If
Loop

la variable loc_ev correspondant a l'handle de terminaison.
la fonction DLL_ReadDATA(...) est une fonction importee d'une DLL
ecrite avec VC++.

L'erreur generee est je pense un depassement de tampon, mais
il est effectue avant l'appel de WaitForSingleObject(...).

merci pour votre aide.

2 réponses

thesbr Messages postés 5 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 26 août 2004
23 août 2004 à 16:26
rebonjour,
un test m'a permis de verifier que l'executable compile en p-code
'plante' apres l'appel a la fonction WaitForSingleObject(...), tandis que le code compile en Natif 'plante' durant la fonction.

Quelles sont les differences entre les codes compiles: p-code et natif?

encore merci pour la moindre information??
0
thesbr Messages postés 5 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 26 août 2004
25 août 2004 à 13:20
resalut,

mon probleme semble interresser peut de monde.

Sans réponse, je propose une alternative :

existe-t-il une autre solution ??

merci de votre comprehension, ceci est un problème majeur:
je débute sous vb.
0
Rejoignez-nous