You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
881 B
39 lines
881 B
#ifdef _WIN32
|
|
#include "winhelper.h"
|
|
#include <Windows.h>
|
|
|
|
|
|
void* dlopen(const char* lib, int)
|
|
{
|
|
return LoadLibraryA(lib);
|
|
}
|
|
|
|
void* dlsym(void* handle, const char* proc)
|
|
{
|
|
return reinterpret_cast<void*>(GetProcAddress(static_cast<HMODULE>(handle), proc));
|
|
}
|
|
|
|
int dlclose(void* handle)
|
|
{
|
|
return FreeLibrary(static_cast<HMODULE>(handle));
|
|
}
|
|
|
|
SharedMemory::SharedMemory(const char* fname)
|
|
{
|
|
this->hFileMap = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 2, fname);
|
|
if (this->hFileMap)
|
|
this->pData = MapViewOfFile(this->hFileMap, FILE_MAP_ALL_ACCESS, 0, 0, 2);
|
|
else
|
|
this->pData = NULL;
|
|
}
|
|
|
|
void SharedMemory::FreeMemoryMap()
|
|
{
|
|
if (this->hFileMap)
|
|
if (this->pData)
|
|
UnmapViewOfFile(this->pData);
|
|
if (this->hFileMap)
|
|
CloseHandle(this->hFileMap);
|
|
}
|
|
#endif
|