亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

c++中.dll與.lib文件的生成與使用的詳解

2020-01-26 16:17:40
字體:
來源:轉載
供稿:網友

c++中.dll與.lib文件的生成與使用的詳解

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

兩種庫:

•  包含了函數所在的DLL文件和文件中函數位置的信息(入口),代碼由運行時加載在進程空間中的DLL提供,稱為動態鏈接庫dynamic link library。
•  包含函數代碼本身,在編譯時直接將代碼加入程序當中,稱為靜態鏈接庫static link library。
共有兩種鏈接方式:

•  動態鏈接使用動態鏈接庫,允許可執行模塊(.dll文件或.exe文件)僅包含在運行時定位DLL函數的可執行代碼所需的信息。
•  靜態鏈接使用靜態鏈接庫,鏈接器從靜態鏈接庫LIB獲取所有被引用函數,并將庫同代碼一起放到可執行文件中。

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

兩種文件的區別

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

使用lib需注意兩個文件:

•.h頭文件,包含lib中說明輸出的類或符號原型或數據結構。應用程序調用lib時,需要將該文件包含入應用程序的源文件中。
•.LIB文件。

使用dll需注意三個文件:

•.h頭文件,包含dll中說明輸出的類或符號原型或數據結構的.h文件。應用程序調用dll時,需要將該文件包含入應用程序的源文件中。
•.LIB文件,是dll在編譯、鏈接成功之后生成的文件,作用是當其他應用程序調用dll時,需要將該文件引入應用程序,否則產生錯誤(如果不想用lib文件或者沒有lib文件,可以用WIN32 API函數LoadLibrary、GetProcAddress裝載)。
•dll文件,真正的可執行文件,開發成功后的應用程序在發布時,只需要有.exe文件和.dll文件,并不需要.lib文件和.h頭文件。

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

生成和使用方法

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

操作系統:WIN7

開發軟件:VS2010

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

1.生成lib文件

  首先,我們先建立一個控制臺工程(新建->工程->控制臺程序),添加add.cpp以及add.h文件。

復制代碼 代碼如下:

//sub.h
#ifndef _SUB_H
#define _SUB_H
void sub(int a,int b);
#endif

//sub.cpp
#include "sub.h"
#include <iostream>

void sub(int a,int b)
{
    std::cout<<(a-b)<<std::endl;
}

  由于在工程中,沒有main()函數,所以直接編譯出錯。這時,要右鍵點擊工程,并選擇工程屬性,出現下圖,選擇靜態鏈接庫即可。

  這時候再按F7,build solution即可產生lib文件。在Debug中只生成.lib文件。

2.生成dll文件

  生成dll文件的過程與上面的過程是一樣的,只是在選擇Dynamic Library(.dll)即可。在Debug中會生成一個.lib和.dll兩種文件。

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

3.兩種文件的使用

  在使用時,靜態鏈接庫只要把.h和.lib文件加入到工程文件夾中即可。而動態鏈接庫要把.h、.lib和.dll文件加入到工程中。

復制代碼 代碼如下:

#include <iostream>
#include "sub.h"  //鏈接庫的頭文件
using namespaces std;

#pragma comment(lib,"sub.lib") //加入鏈接庫

int main()
{
    sub(5,4);
    return 0;
}


4.僅有.dll文件時候的使用方法

  在沒有.h和.lib文件時,需要函數指針和WIN32 API函數LoadLibrary、GetProcAddress裝載,只需要.dll文件即可(將.dll文件置入工程目錄中)。

復制代碼 代碼如下:

#include <iostream>
#include <windows.h>               //使用函數和某些特殊變量
typedef void (*DLLFunc)(int,int);  //確定調用函數的形參
int main()
{
    DLLFunc dllFunc;
    HINSTANCE hInstLibrary = LoadLibrary("sub.dll");//加載.dll

    if (hInstLibrary == NULL)
    {
        FreeLibrary(hInstLibrary);
    }
    dllFunc = (DLLFunc)GetProcAddress(hInstLibrary, "sub");//第二個參數為要調用的函數名稱
    if (dllFunc == NULL)
    {
        FreeLibrary(hInstLibrary);
    }
    dllFunc(5,4);
    FreeLibrary(hInstLibrary);
    return(1);
}


   最近一直在搞API這東西,用了curl、tinyxml和jsoncpp幾種開源的庫,在linux下使用倒是很方便,在windows下還是自己編譯的遇到了點問題,從新整理學習下,備用~~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美重口另类videos人妖| 日本一区二区三区在线播放| 国产精品影片在线观看| 久久亚洲成人精品| 欧美日韩爱爱视频| 日韩av电影免费观看高清| 久久电影一区二区| 中文字幕欧美亚洲| 视频直播国产精品| 精品国产自在精品国产浪潮| 亚洲午夜精品久久久久久性色| 亚洲精品720p| 91理论片午午论夜理片久久| 一区二区三区回区在观看免费视频| 亚洲精品成人av| 8090理伦午夜在线电影| 亚洲第一综合天堂另类专| 色老头一区二区三区在线观看| 亚洲偷熟乱区亚洲香蕉av| 亚洲成人精品视频在线观看| 国产午夜精品全部视频在线播放| 日韩av在线一区| 国产精品一区二区三| 在线国产精品播放| 激情成人在线视频| 成人两性免费视频| 久久手机免费视频| 亚洲伊人第一页| 国产91在线视频| 久久国产精品亚洲| 欧美激情精品久久久久久大尺度| 国产中文日韩欧美| 国产成人精品一区二区在线| 国产日韩av在线| 亚洲美女av黄| 久久久久久久久久久成人| 在线亚洲欧美视频| 一区二区欧美日韩视频| 成人啪啪免费看| 欧美人与性动交| 一区二区三区视频在线| 亚洲自拍中文字幕| 亚洲xxxx视频| 一区二区三区四区精品| 亚洲综合精品一区二区| 久久久久久久久久av| 日韩欧美aaa| 亚洲国产精久久久久久| 亚洲风情亚aⅴ在线发布| 国产成人精品免费久久久久| 亚洲男人第一网站| 国产香蕉97碰碰久久人人| 国产精品久久久久久久久久三级| 欧美怡红院视频一区二区三区| 亚洲欧美综合图区| 欧美日韩免费观看中文| 久久这里有精品视频| 91精品久久久久| 欧美床上激情在线观看| 91免费看视频.| 日韩一区二区久久久| 成人国产精品久久久久久亚洲| 日韩av观看网址| 成人午夜两性视频| 国产精品com| 欧美一级视频一区二区| 伊人久久精品视频| 久久精品亚洲热| 亚洲精品日韩欧美| 日韩高清av一区二区三区| 韩曰欧美视频免费观看| 久久99久国产精品黄毛片入口| 日韩欧美国产中文字幕| 亚洲最新在线视频| 国产日韩精品入口| 91色中文字幕| 日韩电视剧免费观看网站| 尤物tv国产一区| 日韩高清欧美高清| 欧美疯狂做受xxxx高潮| 蜜臀久久99精品久久久久久宅男| 欧美激情一二三| 国产精品久久久久久久久久东京| 久久精品一区中文字幕| 亚洲欧美国产精品专区久久| 精品国产老师黑色丝袜高跟鞋| 久久精品国产视频| 欧美视频在线看| 欧美在线视频免费播放| 欧洲亚洲妇女av| 尤物九九久久国产精品的特点| 一本色道久久88综合亚洲精品ⅰ| 日韩精品在线免费播放| 国产精品盗摄久久久| 美乳少妇欧美精品| 日本欧美一二三区| 91日韩在线视频| 欧美精品久久久久久久久久| 国产在线拍揄自揄视频不卡99| 插插插亚洲综合网| 91成人在线播放| 久久久国产精品一区| 成人午夜激情免费视频| 亚洲成人xxx| 欧美日韩不卡合集视频| 日韩精品视频三区| 亚洲男人天堂久| 欧美极品少妇xxxxx| 欧洲亚洲免费在线| 欧洲成人免费aa| 亚洲福利视频网站| 亚洲精品久久久久国产| 久久在线观看视频| 中文字幕国产日韩| 欧美乱大交做爰xxxⅹ性3| 欧美亚洲一级片| 色综合天天综合网国产成人网| 国产综合色香蕉精品| 欧美寡妇偷汉性猛交| 国产在线观看不卡| 亚洲精品中文字幕女同| 亚洲成人动漫在线播放| 日韩最新在线视频| 国产精品视频免费在线观看| 日韩女优在线播放| 国产日产欧美精品| 国产精品视频男人的天堂| 欧美在线亚洲一区| 欧美性xxxx极品hd欧美风情| 日韩亚洲一区二区| 日韩视频在线一区| 2024亚洲男人天堂| 亚洲毛片在线观看| 亚洲精美色品网站| 国产精品久久久久久久久| 国产精品久久久| 国产欧美日韩免费看aⅴ视频| 亚洲国产精品成人一区二区| 亚洲国产小视频| 精品日韩视频在线观看| 8090成年在线看片午夜| 国产亚洲aⅴaaaaaa毛片| 欧美高跟鞋交xxxxhd| 欧美精品一区二区免费| 久久久视频免费观看| 深夜福利91大全| 欧美性xxxx极品hd欧美风情| 97涩涩爰在线观看亚洲| 深夜福利亚洲导航| 免费不卡欧美自拍视频| 青青久久aⅴ北条麻妃| 国产精品视频导航| 国产欧美精品一区二区三区-老狼| 欧洲精品久久久| 欧美一级bbbbb性bbbb喷潮片| 日韩在线观看网站| 日韩在线视频观看| 日本精品在线视频| 国产一区玩具在线观看| 欧美又大又硬又粗bbbbb| 福利视频第一区| 狠狠色狠狠色综合日日五| 日韩欧美成人免费视频| 91精品中文在线|