2016-03-15 49 views
1

當我做在VS 2015年的空項目,它會自動把這些庫到 「附加依賴」:的Visual Studio 2015年的默認附加庫

KERNEL32.LIB; USER32.LIB; GDI32.LIB; winspool.lib; COMDLG32 .lib; advapi32.lib; shell32.lib; ole32.lib; oleaut32.lib; uuid.lib; odbc32.lib; odbccp32.lib;%(AdditionalDependencies)

我不知道這些大部分是什麼,他們可以安全地刪除?

+1

_「它們可以安全移除嗎?」_可能不是。根據項目類型的不同,這些因爲某些原因而被添加。 –

+0

它們是操作系統的核心庫,刪除諸如'kernel32.lib'之類的庫幾乎肯定會導致鏈接器失敗。無論如何,任何不需要任何函數的庫都不會進入生成的二進制文件的導入表。 – Olipro

+0

uuid。lib是用於GUID的,GUID用作位於計算機上的任何東西(特別是「COM」對象)的全局唯一標識符。如果你不使用'COM'對象或生成GUID來作爲唯一的東西(比如臨時文件的唯一名稱),那麼刪除它是完全安全的。 'uuid.lib'在默認情況下不會被添加到2000年,但是當'COM'非常流行時,VS團隊將它作爲默認依賴項的一部分。 –

回答

3

其中許多可以安全地刪除。下面是它們是什麼了簡要介紹:

  • kernel32:進程和線程管理,文件和設備I/O,內存分配(保留此,編譯器生成-C和C++運行時庫和代碼使用它) (如果使用GUI,可以刪除控制檯應用程序)基本組件窗口(=預定義的窗口類,如按鈕和複選框和滾動條)在這裏。
  • gdi32:繪畫(這一點,如果使用自定義渲染的圖形保持,可如果只是用小部件刪除)
  • comctl32:絢麗的新控件,如樹,列表視圖,和進度條
  • winspool:印刷的高級用法超出了GDI涵蓋的範圍。我總是刪除它。
  • comdlg32:通用對話框,如打開和保存文件對話框
  • advapi32:註冊表支持,用戶帳戶和訪問控制,加密。我通常最終需要這個,你的需求可能會有所不同。
  • shell32,shlwapi:任務欄和通知托盤UI以及更多輔助函數,如預定義的文件夾和路徑操作函數。通常很有用,但許多應用程序不需要它。
  • ole32,oleaut32:OLE是ActiveX,DCOM等的基礎。許多較新的OS API都是COM對象,因此您可能需要保留這一點。
  • uuid:高級OLE用法,可能不需要。
  • odbc32odbccp32:使用非常陳舊且不友好的API訪問數據庫。我總是刪除這些。

斜體庫不在默認列表中,但比一半是更有用。

1

不,你不能刪除它們。這些是與Windows連接的庫。

你不需要擔心它。 .lib確實很小,它們所指的.dll已經作爲Windows安裝的一部分存在。