How to share data between different instance of same DLL

Luxury BinariesLuxury Binaries
1 min read

Usually Dlls are loaded into its corresponding process address space. Indeed the code is shared between all instances but not the global data. So the issue that we might face is – how can we share common data between all dll instances?

#pragma data_seg (".MYSEG")
    int g_nInteger = 0;
    char g_szString[] = "hello world";
#pragma data_seg()

// Tell the linker that the section
// .MYSEG is readable, writable and is shared.
#pragma comment(linker, "/SECTION:.MYSEG,RWS")

Here we are declaring our data segment and are telling that, this segment is RWS – readable, writable and shared. This way we manage to share this data segment between all dll instances.

0
Subscribe to my newsletter

Read articles from Luxury Binaries directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Luxury Binaries
Luxury Binaries