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