做了一个测试程序,包括DllA.dll、DllB.dll、DllFun.dll、test1.exe和test2.ext
主要代码如下:
单独test1.exe的运行结果是:
1. Count = 0
2. Count = 1
3. Count = 2
4. Count = 3
5. Count = 3
同时test2.exe的运行结果是:
1. Count = 0
2. Count = 1
结论:
动态库中的全局数据在一个进程中只会创建一份,不会收到LoadLibary的影响。
而在不同的进程中会创建多份,且进程之间相互不影响。
因此,进程之间共享的只是动态库的代码段,而不是数据。