Problème avec ADOLib [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
19 mai 2005
-
Messages postés
8
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
19 mai 2005
-
Bonjour à tous,

Voilà je fais une application en MFC avec Visual 6 et j'utilise ADOLib pour fair de la base de données.

J'arrive très bien à renseigner ma base, faire des requêtes de sélection etc ...

Mais voilà de temps en temps (trop souvent pour moi) j'ai des erreurs
de lecture de la mémoire avec le fameux message "La mémoire ne peux pas
être read".

Je voudrais savoir si quelqu'un sait d'où cela peut venir. Merci

4 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Le pb avec les violations d'accès mémoire c'est que ça peut vite devenir aléatoire dans certains cas. Disons que tu ai un pointeur vers un pointeur. Si le pointeur de pointeur pointe vers une zone non allouée mais valide (dans une zone allouée par un autre objet par exemple) l'accès à ce pointeur sera valide mais donnera a peu près n'importe quoi comme second pointeur. l'accès à ce second pointeur est lié aux données se situant en mémoire à ce momment et la c'est au petit bonheur la chance de tomber sur une zone valide ou pas...
Messages postés
8
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
19 mai 2005

oki ben je vais revoir mon code alors.

Merci pour tes réponses.
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Cela peut provenir de plein d'endroits, mais voici les principales causes :
- accès à un pointeur déjà libéré => mettre à NULL les pointeurs après un fre/delete et tester le NULL avant accès
- libération d'un pointeur non valide (non initialisé ou déjà libéré)
- accès à un élément hors des bornes d'un tableau => vérifier les bornes avant d'accéder et de modifier un élément

Comme tu est sous MFC utilises à fond en mode Debug tout ce qui est ASSERT, ASSERT_PTR, ASSERT_VALID... avant d'accéder à un objet ou à un pointeur ou tableau cela te permettra de vérifier une erreur de conception du code.

En cas de pb, tu auras une jloie boîte de dialogue t'indiquant la ligne incriminée et en mode debug tu pourras analyser le contexte d'éxécution.
Messages postés
8
Date d'inscription
lundi 25 octobre 2004
Statut
Membre
Dernière intervention
19 mai 2005

Moi ce que je trouve bizare quend même c'est que l'erreur n'apparaît
pas à tout les coups. Si c'était un problème de pointeur, le problème
devrait revenir à chaque fois alors que là l'erreur revient
aléatoirement. Mais je vaiq quand même essayer tout ce que tu m'a dit.