当心在Lib中定义非const全局变量
生活随笔
收集整理的這篇文章主要介紹了
当心在Lib中定义非const全局变量
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)心在Lib中定義非const全局變量
Posted on 2011-08-15 16:33 單魚游弋 閱讀(306) 評(píng)論(0) 編輯 收藏一般我們?cè)谌肿饔糜蚨x全局變量來進(jìn)行模塊間(函數(shù)之間、類之間)的數(shù)據(jù)交互。可是在Lib里干這種事情得當(dāng)心了,如果這個(gè)Lib被兩個(gè)或兩個(gè)以上的DLL(包括EXE)鏈接,并且他們都調(diào)用了Lib中同一個(gè)全局變量,那么災(zāi)難很可能發(fā)生了。因?yàn)閷?duì)于DLL而言,鏈接Lib只是得到了Lib的一份拷貝,也就是說,每個(gè)DLL中得到的Lib的拷貝都是獨(dú)立的,相互之間無聯(lián)系的。因此,這個(gè)“同一個(gè)”全局變量,其實(shí)在每個(gè)DLL中都已經(jīng)單獨(dú)存在了,已經(jīng)不是唯一的“同一個(gè)”,而是每個(gè)DLL各有一個(gè)。所以,這些DLL是不能通過Lib中的全局變量進(jìn)行數(shù)據(jù)交互的,他們各不相干。
總結(jié)
以上是生活随笔為你收集整理的当心在Lib中定义非const全局变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于模板函数/模板类编译成DLL
- 下一篇: 防外挂和防木马的通用解决方案