社区
进程/线程/DLL
帖子详情
关于在DLL中的全局变量,
happycoders
2003-08-16 05:11:40
在DLL 中有导出的 函数A B,
我定义一个全局变量初始话为0,A改变这个变量的值,函数A结束,
我再用B读这个全局变量的时候,是不是得到A改变后的值?
...全文
34
5
打赏
收藏
关于在DLL中的全局变量,
在DLL 中有导出的 函数A B, 我定义一个全局变量初始话为0,A改变这个变量的值,函数A结束, 我再用B读这个全局变量的时候,是不是得到A改变后的值?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DDHuang
2003-08-16
打赏
举报
回复
同意下面的除非跨进程
oopig
2003-08-16
打赏
举报
回复
如果是多个进程使用这个DLL,才会有多个全局变量的拷贝。
oopig
2003-08-16
打赏
举报
回复
不同意gzlucky(Lucky)的观点。
A和B都是从一个DLL导出的,所以即使在不同的线程执行,也是属于同一进程空间。而一个进程中的线程空间都是共享的(除非线程刻意申请独立的空间),所以全局变量在不同线程间都是共享的,而且也是唯一的,任何一个线程对全局变量进行修改,其他的线程都可以看见这种修改。
gzlucky
2003-08-16
打赏
举报
回复
如果调A和B是在同一线程是调用的就是。
如果不是在同一线程下调用的就不是。
不同的程序共同调用DLL时,如果需要全局变量也可以共同使用此变量,就需要用parma进行定义。
oopig
2003-08-16
打赏
举报
回复
是
Windows IPC机制:
DLL
文件
中
的
全局变量
共享
默认情况下,每个进程加载的
DLL
会在其独立的内存空间
中
创建
全局变量
的副本,这导致了
全局变量
在不同进程之间的数据不一致性。但是,通过一些特定的技术手段,我们可以实现
DLL
文件
中
全局变量
的共享,使得多个进程可以访问和修改同一个
全局变量
的值。需要注意的是,虽然
DLL
文件可以实现
全局变量
的共享,但同时也带来了一些问题。通过合理设计和使用
DLL
文件,可以实现
全局变量
的共享,从而满足不同进程之间的数据通信和共享需求。不同进程加载同一个
DLL
文件时,它们都会共享同一个
全局变量
的内存空间,从而实现了跨进程的数据共享。
dll
中
的
全局变量
对于自定义
dll
,(非系统
dll
): 多进程分别加载
dll
时,由于各进程的地址空间是相互独立不可见的,
dll
的数据段是每个进程一份,
全局变量
互不影响。 同一个进程的多个线程多次loadlibrary加载
dll
时,第一次loadlibrary时,进程载入指定的动态链接库,并将它映射到当前进程使用的地址空间。第二次及以后loadlibrary时,只会影响module的引用计数,返回的影像和句柄都是一样的。当然,
全局变量
也是同一个内存地址,多线程
中
,一次更改,全部可见,需要同步。 对于系统
dll
,使用虚拟地
VS之调用程序对
DLL
中
全局变量
的使用
接上篇《》,能够生成
DLL
,且能调用后,遇到一个问题,即在
DLL
程序
中
定义了一些
全局变量
,应用程序需要使用,本以为可以直接使用,没想到,还是需要设置才可以:这个亲测是对的。
(VC++)
DLL
设置钩子函数,如何让回调函数能修改
DLL
中
的
全局变量
在做一个模块测试,将MFC程序
中
的主窗口句柄、成员变量、
全局变量
作为参数传入
DLL
并将值保存到
DLL
的
全局变量
中
,发现在钩子函数HOOK的回调函数
中
调用到的
DLL
全局变量
都是空值(吓尿了),也就是说从外部传入的值虽然保存在
DLL
的
全局变量
里,但是钩子函数的回调函数根本获取不到!!!可是需要这些变量跟MFC程序进行消息交互呀!!怎么会这样?为什么会这样? 其实每次触发钩子回调函数的都是不同的线程,
DLL
中
导出
全局变量
DLL
定义的
全局变量
可以被调用进程访问;
DLL
也可以访问调用进程的全局数据,我们来看看在应用工程
中
引用
DLL
中
变量的例子(单击此处下载本工程)。#ifndef LIB_H#define LIB_Hextern int
dll
GlobalVar;#endif#include "lib.h"#include int
dll
GlobalVar;BOOL APIENTRY
Dll
Mai
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章