写了一段代码测试了一下,在主程序中对DBAccessLib.dll中的static变量ConnectStr赋值xxx之后,再通过HsInterface.dll访问DBAccessLib.dll中的这个ConnectStr变量,值已变为xxx;在主程序中通过HsInterface.dll对DBAccessLib.dll中的ConnectStr变量赋值yyy,然后在主程序中直接访问DBAccessLib.dll中的ConnectStr变量,值已经变为yyy,说明DBAccessLib.dll被主程序和HsInterface.dll访问的是同一内存区域。
从网上搜到的一句话:
the dll is loaded into each process' private address space, nothing is shared between processes (except for shared sections which u must define explicitly)
如果dll被两个不同的进程加载,那么dll中类的static成员变量肯定就不被共享了。
??