LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 2013
-
25 sept. 2012 à 11:06
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 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.
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 20131 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.