建置匯入程式庫和匯出檔案
更新:2007 年 11 月
若要建置匯入程式庫和匯出檔案,請使用下列語法:
LIB /DEF[:deffile] [options] [objfiles] [libraries]
當指定了 /DEF,LIB 會根據傳遞至 LIB 命令內的匯出規格來建立輸出檔案。有三種方法可指定匯出,依建議使用順序列出:
其中一個 objfiles 或 libraries 之內的 __declspec(dllexport) 定義
在 LIB 命令列上 /EXPORT:name 的規格
在 deffile 中的 EXPORTS 陳述式之內的定義
這些和您在連結匯出程式時指定匯出的方法相同。一個程式中可以使用一種以上的方法。您可以在 LIB 命令的命令檔裡指定部分的 LIB 命令 (例如,多個 objfiles 或 /EXPORT 規格),就如在 LINK 命令裡一樣。
下列選項可套用於建置匯入程式庫和匯出檔案:
/OUT: import
覆寫正在建立之 import 程式庫的預設輸出檔案名稱。當沒有指定 /OUT 時,預設名稱是在 LIB 命令中之第一個目的檔或程式庫的主檔名,副檔名為 .lib。匯出檔被指定為與匯入程式庫相同的主檔名,以及副檔名 .exp。/EXPORT: entryname[= internalname][,@ ordinal[, NONAME]][, DATA]
從您的程式中匯出一個函式,以允許其他程式呼叫這個函式。您也可以匯出資料 (使用 DATA 關鍵字)。匯出通常定義於 DLL 中。當呼叫的程式使用 entryname 時,它是函式或資料項目的名稱。您也可以指定 internalname 做為定義程式中已知的函式;internalname 是預設為與 entryname 相同。ordinal 指定索引到匯出表範圍 1 至 65,535 之間;如果您沒有指定 ordinal,LIB 會指派一個。NONAME 關鍵字只以序數匯出函式,沒有 entryname。DATA 關鍵字用來匯出只有資料的物件。
/INCLUDE: symbol
將指定的符號加入符號表。這個選項在強迫使用不會被包含的程式庫物件時很有用。
請注意,如果您在建立 .dll 之前的預備步驟中,建立匯入程式庫,則在建置 .dll 時,必須傳遞於建置匯入程式庫時所用的同一組物件檔。