File Mapping

Résolu
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 23 mars 2011 à 14:37
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 25 mars 2011 à 14:38
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

cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
25 mars 2011 à 14:08
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".

@+
3
cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
24 mars 2011 à 19:40
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.

@+
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
25 mars 2011 à 09:27
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+
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
25 mars 2011 à 14:38
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
0
Rejoignez-nous