Code erreur 8 : FILEMAPPING

Résolu
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 25 sept. 2012 à 11:06
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 25 sept. 2012 à 11:37
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 sept. 2012 à 11:19
Tu as bien 1 UnmapViewOfFile pour CHAQUE MapViewOfFile ?


ciao...
BruNews, MVP VC++
3
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
25 sept. 2012 à 11:37
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?



 
0
Rejoignez-nous