Code erreur 8 : FILEMAPPING [Résolu]

Signaler
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Bonjour,

Après quelques recherches j'ai trouvé un bout de code très utile me permettant de faire un échange de données important (8Mo) entre 2 applications basées sur MFC.
Le principe est simple, chaque minute l'application 1 envoie un message à l'application 2 via FILEMAPPING, et l'application 2 (après avoir exécuté un algorithme) renvoi par le même biais un message à l'appli 1.

Tout marche à merveille, mais au bout d'un certain temps la fonction :MapViewOfFile me retourne NULL et GetLastError me donne le code 8 ERROR_NOT_ENOUGH_MEMORY.

Je ne comprends pas, j'ai donc créé deux applications très simples s'échangeant 1 int, 1 float, 1 string. et je fais tourner en boucle ... à chaque fois plantage au bout du 30.000 ème message.

Mon algorithme est celui ci (appli 1):
-création de la MAP
-boucle infinie écriture sur la MAP
-Envoi d'un message à l'appli 2
-si demande d'arret unMap...

Si possible je peux mettre mon projet à disposition.

Quelqu'un pourrait-il m'expliquer pourquoi je reçois NULL au bout de 30.000 messages et toujours 30.000?
merci d'avance pour votre aide.


 

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
Tu as bien 1 UnmapViewOfFile pour CHAQUE MapViewOfFile ?


ciao...
BruNews, MVP VC++
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
Effectivement j'avais fait une grosse erreur, j'avais retiré le unMap à la fin pour des tests(fait il y a plusieurs semaines) et j'avais oublié.
Je venais juste de trouver l'erreur quand j'ai reçu ton message.

Merci.

Du coup, il m'a créé 30.000 file, c'est ça?