Я создаю DLL, которая разделяет память между различными приложениями.
Код, который создает общую память, выглядит следующим образом:
#define NAME_SIZE 4
HANDLE hSharedFile;
create(char[NAME_SIZE] name)
{
hSharedFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 1024, (LPCSTR)name);
(...) //Other stuff that maps the view of the file etc.
}
Он не работает.Однако, если я заменю name
на строку, она будет работать:
SharedFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 1024, (LPCSTR)"MY_TEST_NAME");
Как мне заставить это работать с массивом char?
У меня есть Java-фон, где вы просто используетеСтрока все время, что такое LPCSTR?И связано ли это с тем, использует ли мой проект MS VC ++ Unicode
или Multi-Byte
набор символов