日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

.dll与.lib的关系总结

發布時間:2025/6/17 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .dll与.lib的关系总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境:Win10 Vs2015 Debug+x64 新建一個C++的空項目 項目屬性里首先配置好目標類型(.dll),再配置輸出.lib和.dll的文件夾

?

?

?.dll文件需要有一個函數入口,DllMain(),只需要build即可得到需要.lib和.dll文件

//Function.h #pragma once extern "C" _declspec(dllexport) void test(); //Function.cpp #include"Function.h" #include <iostream> using namespace std; void test() {cout << "Hello World" << endl; } //TestDll.cpp #include<Windows.h> using namespace std; BOOL APIENTRY DllMain(HANDLE hModulce, DWORD ul_reason_for_call, LPVOID lpReaserved) {return TRUE; }

.lib有兩種類型,一種是靜態鏈接庫(Static Link Library),它里面是函數實現的代碼,是編譯完很多個.obj的集合,使用時直接鏈接到主程序一起寫進.exe(.dll)中,還有一種是動態鏈接庫(Dynamic Link Library)的導入庫(Import Library),里面沒有實現的代碼,只有輸出方法的名字和其對應的地址,它和.dll配合使用(ps.即便是同一份代碼,在不同編譯器下可能有不同的地址)

尋找.lib的兩種方式,首先Vs在項目屬性VC++目錄里找到庫文件目錄以及鏈接器目錄里外部依賴項,然后就是以代碼的形式直接給出路徑

.dll即動態鏈接庫(Dynamic Link Library),是應用程序的拓展,和.exe配合使用,它是在運行時調用里面的方法才被加載進內存的,build生成.exe后(ps.不管找不找得到.dll,都可以生成成功),既能在系統變量里添加.dll的文件夾才能通過lib的名字找到它,也可以是在.exe同一級目錄下來找它

//test code #include<iostream> #include"D:\Vsproject\TestDLL\TestDLL\Function.h" #pragma comment(lib,"D:\\Vsproject\\TestDLL\\output\\lib\\TestDLL.lib") using namespace std; using namespace std; int main() {test();system("pause"); }

?

轉載于:https://www.cnblogs.com/night-raid/p/11538258.html

總結

以上是生活随笔為你收集整理的.dll与.lib的关系总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。