File Mapping [Résolu]

cs_aymen87 109 Messages postés samedi 3 novembre 2007Date d'inscription 4 février 2016 Dernière intervention - 23 mars 2011 à 14:37 - Dernière réponse : cs_aymen87 109 Messages postés samedi 3 novembre 2007Date d'inscription 4 février 2016 Dernière intervention
- 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
Afficher la suite 

4 réponses

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

@+
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Lucky92
cs_Lucky92 180 Messages postés mercredi 22 décembre 2004Date d'inscription 16 août 2012 Dernière intervention - 24 mars 2011 à 19:40
0
Utile
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.

@+
Commenter la réponse de cs_Lucky92
cs_aymen87 109 Messages postés samedi 3 novembre 2007Date d'inscription 4 février 2016 Dernière intervention - 25 mars 2011 à 09:27
0
Utile
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+
Commenter la réponse de cs_aymen87
cs_aymen87 109 Messages postés samedi 3 novembre 2007Date d'inscription 4 février 2016 Dernière intervention - 25 mars 2011 à 14:38
0
Utile
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
Commenter la réponse de cs_aymen87

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.