[英]What is a .exp file and .lib file, and how can I use them in my C# project?
我想下載用於我的C#項目的lame庫來轉換音頻。 我找到了這里使用的文件(libmp3lame)
當我下載檔案時,我找到了我正在尋找的.dll
,但是和他們一起,還有另外兩個文件:
我的問題:
.dll
文件之外,如何在我的項目中使用它們 .dll
庫不能? 編輯:我覺得這些文件不適用於C#。 更多適用於C ++。 但無論哪種方式,這些文件是什么? 它們用於什么?
lib
文件和exp
文件都與本機代碼開發一起使用(例如C ++ / VB6 / Win32),並且在.NET世界中根本不使用。
lib
文件包含可重用代碼或數據的集合,或者兩者都可以靜態鏈接並與現有代碼一起使用。 它們與DLL
文件類似,不同之處在於,當您編譯程序時,DLL文件是動態鏈接的,而LIB
文件是靜態鏈接的。
exp
文件是導出文件。 有一些類似的元數據文件告訴編譯器DLL中的哪些函數已被導出,因此可以在靜態鏈接的程序中重用。 .NET程序不需要這個,因為每個.NET DLL都有一個稱為CLR Metadata部分的特殊部分。 .NET程序可以使用反射來提取此元數據信息並查看可用的方法。
如果你考慮在.NET中使用本機DLL的方法(p / invoke),你的p / invoke聲明有幾個部分:
DllImportAttribute
指定找到函數的DLL及其在導出表中的鍵(錯位名稱或序號) 在C和C ++中,頭文件提供第一個,而以.lib
結尾的導入庫提供第二個。
與p / invoke的DllImportAttribute
,在C和C ++中,調用約定與函數簽名一起存儲在頭文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.