DLL和EXE怎样共享全局变量?
来源:互联网 发布:光子嫩肤效果知乎 编辑:程序博客网 时间:2024/05/21 18:32
全局共享数据
#pragma data_seg ("shareddata")
HWND sharedwnd=NULL;//共享数据
#pragma data_seg()
编译选项加入 /SECTION:shareddata,rws
============================
用pragma设置共享数据:
#pragma data_seg("MYSEC")
char MySharedData[4096]={0};
#pragma data_seg()
然后在用户的DEF文件中为有名的数据区设定共享属性。
LIBRARY TEST
DATA READ WRITE
SECTIONS
.MYSEC READ WRITE SHARED
在应用程序(进程)按外部变量引用共享数据。
extern _export"C"{char * MySharedData[];}
进程中使用该变量应注意间接引用。
m_pStatic=(CEdit*)GetDlgItem(IDC_SHARED);
m_pStatic->GetLine(0,*MySharedData,80);
=====================================
//Global.h In DLL
#pragma once
#include "StdAfx.h"
#pragma data_seg(".Shared")
int g_nExport = 33333;
CString g_strExport = "DLLEXPORT";
#pragma data_seg()
#pragma comment(linker,"/SECTION:.Shared,RWS")
如果DLL中定义了共享变量A,EXE1载入DLL,另外一个EXE2也载入DLL,则EXE1里的DLL 和 EXE2里的DLL将可以访问同一个A;而不是EXE1和DLL之间共享,也不是EXE2和DLL之间共享。
另外,EXE要访问DLL里的全局变量,则DLL必须把变量export出来,EXE再import,import有隐式或显式
===========================
http://hi.baidu.com/shilyx/blog/item/2017dca29b1777accaefd0e1.html 全局共享变量初始化
- DLL和EXE怎样共享全局变量?
- DLL和EXE怎样共享全局变量?
- DLL和EXE怎样共享全局变量?
- dll和exe的共享节------多进程共享dll/exe全局变量
- dll和exe的共享节------多进程共享dll/exe全局变量
- dll和exe的共享节------多进程共享dll/exe全局变量
- dll和exe的共享节------多进程共享dll/exe全局变量
- dll共享全局变量
- 在Exe和Dll之间共享变量
- 关于DLL和EXE共享静态类对象
- exe和dll
- 打包DLL和exe
- lib和dll中的全局变量
- Delphi7 内存管理及 FastMM 研究 (对于EXE和DLL内存共享很有用)
- Delphi7 内存管理及 FastMM 研究 (对于EXE和DLL内存共享很有用) .
- Delphi7 内存管理及 FastMM 研究 (对于EXE和DLL内存共享很有用)
- Delphi7 内存管理及 FastMM 研究 (对于EXE和DLL内存共享很有用)
- dll(动态链接库)之间以及和exe之间的函数、类或全局变量互传
- DLL在多个相同或不同的exe之间共享静态数据
- ACE中的Double Checked Locking 模式
- “感恩”于网络与媒体,给我们带来了这么多疑惑
- 调试输出信息OutPutDebugString
- 二叉树的问题
- DLL和EXE怎样共享全局变量?
- 看!哇呜,程序猿耶……
- C++中const用法总结
- 使用OutputDebugString将调试信息输出
- 浅析adb命令 - adb forward交互流程
- 用Parcelable传递对象方法
- 再谈“我是怎么招聘程序员的”
- Linux 系统启动过程详解
- Oracle Lock Related Queries