首页
社区
课程
招聘
[求助]关于dll和exe的全局变量
发表于: 2022-8-20 21:36 5744

[求助]关于dll和exe的全局变量

2022-8-20 21:36
5744

我让exe导出了一个函数,这样它可以作为dll使用。

 

这个程序里有一个全局变量,当程序作为exe独立运行的同时,还作为dll被加载到其他进程中时,这个全局变量两边访问到的是同一个变量吗?

 

另外,如果让这个exe自己作为自己的dll加载到自己独立运行的进程中,再让它作为dll加载到其他进程中,这个全局变量两边访问到的是同一个变量吗?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 5011
活跃值: (2983)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
个人观点,不喜勿喷
关于第一个问题,最终是两个变量,也就是两份虚拟内存地址
第二个问题也是两个独立的变量不是共用一个变量
关于不同进程共用同一个变量可以参考百度文库的"DLL共享数据段"
9bdK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4k6h3&6C8N6g2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4K6u0r3N6X3W2W2N6#2)9J5c8X3y4U0x3o6R3^5j5$3b7@1y4o6f1&6x3$3c8S2k6h3j5#2k6h3j5%4j5X3p5H3k6o6c8S2y4K6x3H3x3U0M7$3z5r3f1&6z5e0k6X3z5e0S2Q4x3X3g2Z5N6r3#2D9
2022-8-20 21:48
0
雪    币: 217
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
fishod 个人观点,不喜勿喷 关于第一个问题,最终是两个变量,也就是两份虚拟内存地址 第二个问题也是两个独立的变量不是共用一个变量 关于不同进程共用同一个变量可以参考百度文库的"DLL共享数据段 ...
谢谢。另外在第二个问题的情境中,如果这个全局变量是共享的,那么这个exe本体运行和作为dll运行,访问的是同一个全局变量吗?
2022-8-20 23:04
0
雪    币: 0
活跃值: (707)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
只要是两个不同进程,永远都是两个变量。除非你用内存映射把它映射到一块共享内存里去。但很明显你没有这么做。
2022-8-21 00:19
0
雪    币: 7065
活跃值: (6626)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
5
上面说过的,就不说了,DLL因为在进程中,是可以访问该进程内存的,所以说,如果你传递变量的内存地址过去让他处理,是可以共享的
2022-8-21 09:22
0
雪    币: 2132
活跃值: (1866)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
用实际一点的。 一个程序运行时,会申请一块内存。而作为程序运行的一部分的dll/exe中变量,一定是从程序的基地址进行偏移。 这样,你可以知道, 2 个程序 不可能使用相同的内存变量了吧。 如果能使用相同的内存变量,那系统就会崩了。
2022-8-21 09:25
0
雪    币: 217
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
谢谢各位大佬解答
2022-8-21 10:57
0
游客
登录 | 注册 方可回帖
返回