关于在DLL中的全局变量,

happycoders 2003-08-16 05:11:40

在DLL 中有导出的 函数A B,
我定义一个全局变量初始话为0,A改变这个变量的值,函数A结束,
我再用B读这个全局变量的时候,是不是得到A改变后的值?
...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧