File Mapping

Résolu
Signaler
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
-
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016
-
Bonjour

Je veux partager une ressource entre deux processus, j'ai eu recours au file mapping.
Dans ma machine,ca fonctionne à merveille mais quand je copie le .exe dans une autre machine l'objet file Mapping ne se cré pas voila un bout de mon code

int MapFile()
{
HANDLE hMapFile;
LPCTSTR pBuf;

hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
MAX_BUFFER_RECEIVED_LENGTH, // maximum object size (low-order DWORD)
szName); // name of mapping object

if (hMapFile == NULL)
{
printf("Could not create file mapping object (%d).\n",GetLastError());
return 1;
}

...

le log Could not create file mapping object (5) s'affiche.

Une aide serait appréciable.
Merci Bcp

4 réponses

Messages postés
180
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
16 août 2012
2
Salut,

En lisant la documentation, j'ai l'impression qu'il y a des conditions particulières pour utiliser le namespace "Global". Je te conseille d'utiliser un nom de fichier simple sans namespace, à moins que tu n'utilises un "Terminal server".

@+
Messages postés
180
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
16 août 2012
2
Salut,

Comme l'indique le code d'erreur retourné (5), il y a un ERROR_ACCESS_DENIED (cf le lien suivant).
Vérifie que le chemin contenu dans "szName" est correcte, qu'il existe sur la machine, que tu as les droits en écriture, etc.

@+
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

Merci pour la réponse mais mon szName est déclaré comme suit
TCHAR szName[]="Global\\MyFileMappingObject";

Ce chemin n'existe pas aussi dans ma machine, je crois que c'est juste une identification de l'objet à partager.Je trouve encore pas d'explication.

Merci
a+
Messages postés
109
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
4 février 2016

Merci, t'as tout à fait raison en fait, je crois que ca fonctionne pas sous windows 7, je l'ai testé sous windows server 2008 et ca fonctionne sans aucun problème.

Merci pour la doc