#include #include "shm_object.h" #include #include "size_map.h" #include "shm.h" struct Test { char m_type[16]; int m_version; }; int main(int argc, char** argv) { bg::ShmOptions opts(false, "Test", nullptr); opts.fix_vptr_on_init = false; if(!bg::ShmInit(opts)) { printf("cannot init shm system.\n"); return 1; } Test* test = bg::ShmNew(); strcpy(test->m_type, "sadfsfs"); test->m_version = 1000; Sleep(10000); return 0; bg::detail::SizeMap sizemap; size_t temp111 = bg::detail::SizeMap::CalcAlignment(0x1F000); auto temp = sizemap.Init(); size_t available_size; bg::detail::GetAvailableMemorySize(&available_size); char path[256]; snprintf(path, 256, "%s-mgr.mmap", "111"); size_t real_size = 0x9000; void* addr = nullptr; // if(argc <= 1) { addr = bg::detail::ShmObjectCreate(path, 0x600000000000, &real_size, &real_size); Test* a = (Test*)addr; strcpy(a->m_type, "sadfsfs"); a->m_version = 1000; bg::detail::GetAvailableMemorySize(&available_size); while(true) { Sleep(100000); } } else { addr = bg::detail::ShmObjectAttach(path, 0x600000000000, &real_size, &real_size); } Test* a = (Test*)addr; bg::detail::ShmObjectDelete(addr, real_size, path); return 0; }