我有兩個在Visual Studio 2015下編寫的C項目。第一個項目只是一個靜態庫項目,而第二個項目是一個控制檯應用程序,它使用第一個項目生成的靜態庫文件。驗證封裝生成的庫
我在Windows中使用DUMPBIN工具檢查了靜態庫文件,發現有很多變量和函數暴露在外面,這對封裝問題非常不利。
我的問題是我怎麼能確定我不公開那些應該是私人的功能。我是否需要每次使用該工具進行檢查?我的問題也涵蓋了變量。我所有的靜態全局變量也暴露在外面。我如何強迫他們成爲私人?
我有兩個在Visual Studio 2015下編寫的C項目。第一個項目只是一個靜態庫項目,而第二個項目是一個控制檯應用程序,它使用第一個項目生成的靜態庫文件。驗證封裝生成的庫
我在Windows中使用DUMPBIN工具檢查了靜態庫文件,發現有很多變量和函數暴露在外面,這對封裝問題非常不利。
我的問題是我怎麼能確定我不公開那些應該是私人的功能。我是否需要每次使用該工具進行檢查?我的問題也涵蓋了變量。我所有的靜態全局變量也暴露在外面。我如何強迫他們成爲私人?
我不認爲在dumpbin輸出中的存在可以被認爲是「暴露」。所有的靜態全局變量都需要一些空間分配,並可能在運行時進行初始化。所以對於他們來說,存在於dumpbin輸出中是很自然的。另外,如果您正在編譯鏈接時代碼,那麼所有內容實際上都是「暴露」的。
根據定義,內部連接的名稱不應該用於外部。如果您的庫包含多個編譯單元,則不要提供內部聲明。 – Olaf