在可执行文件或DLL的多个实例之间共享静态数据
来源:互联网 发布:淘宝店怎么代理加盟 编辑:程序博客网 时间:2024/05/30 23:19
全局数据和静态数据不能被同一个.exe或DLL文件的多个映像共享,这是个安全的默认设置。每个.exe或DLL文件的映像都由许多节组成。按照规定,每个标准节的名字均以圆点开头。例如,当编译你的程序时,编译器会将所有代码放入一个名叫.text的节中。该编译器还将所有未经初始化的数据放入一个.bss节,而已经初始化的所有数据则放入.data节中。
每一节都拥有与其相关的一组属性,这些属性如下所示。
.exe或DLL文件各节的属性
属性含义
READ
该节中的字节可以读取
WRITE
该节中的字节可以写入
EXECUTE
该节中的字节可以执行
SHARED
该节中的字节可以被多个实例共享(本属性能够有效地关闭copy-on-write机制)
使用Microsoft的Visual Studio的DumpBin实用程序(带有/Headers开关),可以查看.exe或DLL映射文件中各个节的列表.
除了编译器和链接程序创建的标准节外,也可以在使用下面的命令进行编译时创建自己的节:
#pragma data_seg( "MyShared" )
int gCount = 0;
#pragma data_seg()
#pragma comment(linker, "/SECTION:MyShared,rws")
- 在可执行文件或DLL的多个实例之间共享静态数据
- -在可执行文件或DLL的多个实例之间共享静态数据
- 在可执行文件或DLL的多个实例之间共享静态数据
- 《windows核心编程》学习笔记——在同一个可执行文件或dll的多个实例间共享静态数据
- DLL在多个相同或不同的exe之间共享静态数据
- rails关于一个Action的多次或多个Action之间共享数据的思路
- 多个activity之间的数据共享
- 在多个的共享ndk项目之间共享模块
- 用内存映射在多个应用程序之间共享数据
- 静态成员变量实现个对象之间数据共享
- 多个程序dll共享数据
- 多个Activity之间共享数据的5种方式
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- angularJS--多个控制器之间的数据共享
- angularJS--多个控制器之间的数据共享
- System Center Essentials 2007入门
- 网络维护之ADSL知识合集
- 安装openoffice的方法
- 用AJAX实现联动下拉菜单(Cascading DropDownList Using AJAX)
- DataGrid Web控件深度历险
- 在可执行文件或DLL的多个实例之间共享静态数据
- 网络维护
- 必看!最经典的Windows错误提示(多图)
- 关于php 中默认时区的设定
- plugin.xml配置中关于Classpath的思考
- 网络
- SCI,EI论文
- DataGrid分页《非控件版》
- 解决:fatal error C1189: #error : include 'stdafx.h' before including this file for PCH