如何在Windows下实现动态链接库(DLL)共享数据段

《 程序员的自我修养》一书9.1.3节中描述了DLL共享数据段的功能和原理,本人通过上网搜索并编写测试程序,找到了实现方法,现简述如下:

    1. 在DLL实现文件(.c, .cpp)中定义自定义数据段,并指定其读写和共享权限,具体如下:

#pragma data_seg (".myseg")
SHAREDATADLL_API int g_nCount = 0; 
SHAREDATADLL_API unsigned char g_pBuff[256] = "aaaaaaaaaa";
#pragma data_seg()

#pragma comment(linker,"/section:.myseg,rws")

    其中myseg是自定义数据段的名称,g_nCount和g_pBuff共享的变量,rws表示此自定义数据段具有读、写及共享权限(关键)。

     2. 在DLL头文件(.h)中导出上述共享变量

extern SHAREDATADLL_API int g_nCount; 
extern SHAREDATADLL_API unsigned char g_pBuff[256];

你可能感兴趣的:(windows,api,测试,dll,linker)