關於C 的dll中類的靜態成員變數

2021-07-14 20:02:23 字數 767 閱讀 7216

我用c#寫的動態庫dbaccesslib.dll封裝了資料庫的一些基本操作類,hsinte***ce.dll呼叫了dbaccesslib.dll,主程式呼叫了hsinte***ce.dll和dbaccesslib.dll,那麼也就是說dbaccesslib.dll被主程式直接呼叫和間接呼叫,那麼dbaccesslib.dll中的類的static成員變數如果在主程式中被賦值了,在hsinte***ce.dll中呼叫時還需要賦值嗎?

寫了一段**測試了一下,在主程式中對dbaccesslib.dll中的static變數connectstr賦值***之後,再通過hsinte***ce.dll訪問dbaccesslib.dll中的這個connectstr變數,值已變為***;在主程式中通過hsinte***ce.dll對dbaccesslib.dll中的connectstr變數賦值yyy,然後在主程式中直接訪問dbaccesslib.dll中的connectstr變數,值已經變為yyy,說明dbaccesslib.dll被主程式和hsinte***ce.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成員變數肯定就不被共享了。

??

C 類中的靜態成員

相關規則 1 靜態函式不能呼叫類的成員變數和成員函式 2 成員函式可以呼叫靜態變數和靜態函式 3 靜態變數和靜態函式不屬於類的任何具體物件 沒有this指標 但是可被類的所有物件共享。4 類的靜態變數和靜態函式不能被其派生類繼承 5 靜態變數必須初始化後才能被呼叫 無論是成員函式還是靜態函式呼叫 靜...

C 類中的靜態成員

我們學習乙個知識點,首先想到的是為什麼要有這個東西的存在呢?對於c 類的靜態成員存在的理由如下 有的時候類需要它的一些成員與類本身無關,而不是與類的各個物件保持關聯。例如 乙個銀行賬戶型別類可能需要乙個資料成員來表示當前基準利率。在此例中,我們希望利率與類關聯,而非與類的每個物件關聯。從實現的效率的...

C 類中的靜態成員

1 靜態類成員變數 ifndef cl student h define cl student h include class cl student endif include qstring cl student sta school uestc 初始化靜態類成員變數 cl student cl ...