OpenFileMapping: GetLastError = 2

Я пытаюсь разделить память между двумя процессами C # (EXE) и C ++ (DLL).
C ++ DLL динамически загружается процессом-получателем Citrix.

Ниже приведен мой код на C # и C ++:

private void Test()
{
string data = "Hello";
_memoryMap = MemoryMappedFile.CreateOrOpen("14614C87-8D7F-45FC-8D59-DCBF1715A715", data.Length, MemoryMappedFileAccess.ReadWrite);

var stream = _memoryMap.CreateViewStream();

using (BinaryWriter binReader = new BinaryWriter(stream))
{
binReader.Write(data);
}
}
void readFromMemoryMap()
{
HANDLE hMapObject = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, L"14614C87-8D7F-45FC-8D59-DCBF1715A715");

char buffer[2000];
if (hMapObject == NULL)
{
sprintf(buffer, "OpenFileMapping: GetLastError=%d", GetLastError());
}

char *fileBuffer = (char *)MapViewOfFile(hMapObject, FILE_MAP_ALL_ACCESS, 0, 0, 6);

UnmapViewOfFile(fileBuffer);
CloseHandle(hMapObject);
}

Я позаботился о написании и чтении последовательности объектов. Дескриптор карты памяти моего приложения C # не падал. Я запустил этот код, используя учетную запись администратора, которая имеет права.

Я сталкиваюсь с ошибкой ниже. Может кто-нибудь помочь мне в случае этой ошибки?

Я следовал по ссылке ниже для решения этой проблемы.

OpenFileMapping ERROR_FILE_NOT_FOUND

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …