由於這篇文章變得比本應該大得多,我又重新開始了。應用程序有2個靜態變量示波器
我的問題是,對於某些共振,我的C++項目的一部分被自動編譯到共享庫中,因此不再與我的其他代碼庫共享靜態作用域。
我已經隔離了這個原因,但仍然不明白爲什麼會發生。
我正在將第三方共享庫集成到我的項目中,這需要我將一些類也添加到我的項目中。
如果我只鏈接到庫幷包含頭文件,我的項目會輸出一個exe文件,而且一切都很好。
第二,我補充一下:
(CAkFilePackageLowLevelIOBlocking是我需要通過CPP代碼添加到我的項目的一個類)
protected:
CAkFilePackageLowLevelIOBlocking m_LowLevelIO;
我SoundManager類中的類,然後再建,我得到在結束這個額外的行告訴我,其輸出的.lib和文件.exp:
1> Generating Code...
1> Creating library D:\DustCloud\WorkingCopy\src\VS2010\Debug\GameDbg.lib and object D:\DustCloud\WorkingCopy\src\VS2010\Debug\GameDbg.exp
1> VS2010.vcxproj -> D:\DustCloud\WorkingCopy\src\VS2010\Debug\GameDbg.exe
所以,發佈一個簡單得多的問題,
什麼可能導致我的項目需要通過添加庫給我的類型的類成員來創建.lib文件?
難道這是一個pragma def或類似的地方在那些強制.lib輸出的類中?我使用VS2010,建設一個普通的舊的Win32 C++應用程序
我不明白'map has split'是什麼意思 - 如果你在代碼中聲明瞭一張地圖,它就不能拆分。你能展示一些代碼來說明嗎? –
我似乎記得,全局變量和單身是每個共享庫定義的,所以是的,如果類在庫中註冊,它們將在單獨的單例中。 (沒有答案,因爲我不確定) – stefaanv
@stefaanv - 我敢肯定這正是答案 – vines