1. 程式人生 > >VS生成DLL沒有生成LIB檔案的解決方法

VS生成DLL沒有生成LIB檔案的解決方法

1、在所建工程上單擊滑鼠右鍵,在彈出的右鍵選單中選擇“新增-->新建項....---->模組定義檔案”,在該模組定義檔案中寫匯出函式表,單擊確定。然後在所建工程上單擊滑鼠右鍵,選擇“屬性”選單,在彈出的屬性對話方塊中“連結器-->輸入-->模組定義檔案”中填寫剛才定義的def檔案,然後再重新編譯即可生成LIB檔案。

2、新建->win32專案->->dll->->匯出符號(這樣的話vs會自動幫你生產一些檔案,然後自己可以在這個的基礎上修改下)

生成好了後會在相應的目錄下出現lib和dll兩個檔案。

使用的時候把lib和dll以及h檔案匯出就可以了。

其它工程中使用的時候用下面兩種方式:

#pragma comment (lib,"MyDLL.lib")

或者:

HINSTANCE hInstLibrary = LoadLibrary(_T("MyDLL.dll"));//注意此處必須有_T()函式。

if (hInstLibrary == NULL)     
{     
   FreeLibrary(hInstLibrary); 
   cout<<"LoadLibrary error!"<<endl;
   getchar();
   return 0;
}

else

{

}

---------------

如果在新建dll的時候選擇空白的檔案(即不用vs自帶的幫你生成)的話,注意一定要自己手動新增def檔案。否則生成不了lib檔案!

Visual C++ 開發工具提供了兩個命令列工具,一個是dumpbin.exe,另一個是lib.exe。利用這兩個工具即可從dll匯出其對應的lib。 

1、在命令列執行: 
dumpbin /exports yourdll.dll > yourdll.def 

2、編輯 yourdll.def 檔案,使之格式與.def檔案格式一致。比如: 

EXPORTS; 
fn1; 
fn2; 

3、在命令列執行: 
lib /def:yourdll.def /machine:i386 /out:yourdll.lib