VS 2017中導出函數爲DLL,創建和隱式加載動態鏈接庫

  1. 新建一個項目(工程)
    在這裏插入圖片描述

  2. 創建一個控制檯應用程序,這裏我命名工程名爲20190703,點擊確定
    在這裏插入圖片描述

  3. 創建好後有以下頭文件和源程序
    在這裏插入圖片描述

  4. 在頭文件這裏新建一個頭文件,以實現加法函數爲例,我創建了一個名爲add_test的頭文件
    在這裏插入圖片描述

  5. 創建好頭文件後,在頭文件裏寫入你要實現的函數,此處我要實現加法功能,就在頭文件裏寫入了一個簡單的加法函數。
    寫好的函數寫好的函數前面要加上 extern "C" __declspec(dllexport),原因大家可以自行百度,此處不贅述。

  6. 在主程序前包含頭文件(#include “add_test.h”),然後在主程序裏調用這個函數( std::cout << add(1, 2);)。在這裏插入圖片描述

  7. 此時生成的還是一個應用程序,可以右擊界面左側的“解決方案20190703”,出現如圖菜單欄,點擊最後一項“屬性”,將配置類型更改爲動態庫dll,點擊確定。在這裏插入圖片描述在這裏插入圖片描述

  8. 然後點擊運行,不過是運行不了的,但這樣就已經生成了我想實現加法功能的動態鏈接庫了,在你建工程的目錄下Debug文件夾裏,打開文件夾,可以看到20190703.dll和20190703.lib。
    在這裏插入圖片描述在這裏插入圖片描述

  9. (這步可以省略)怎麼看有沒有成功生成DLL呢,打開VS 2017的開發人員命令提示符,在這個黑框框裏輸入“ dumpbin/exports+空格+你的DLL文件在計算機裏的完整位置”,此處爲“ dumpbin/exports D:\Cpluspluscode\20190703\20190703\Debug\20190703.dll ”,然後就能看到DLL中的導出函數的相關信息
    在這裏插入圖片描述在這裏插入圖片描述

  10. 【生成了DLL了,可以在你之後寫的程序里加載這個DLL了】【以下步驟爲隱式加載DLL】
    我又新建了一個工程,這個工程就是我要調用DLL的工程。
    在這裏插入圖片描述

  11. 複製之前創建好的20190703.dll和20190703.lib,如圖,複製到要調動DLL的新工程的主函數目錄下
    在這裏插入圖片描述然後在圖2資源文件那一項裏添加現有項20190703.lib在這裏插入圖片描述在這裏插入圖片描述添加好了
    在這裏插入圖片描述

  12. 添加一個頭文件在這裏插入圖片描述添加好了,然後再頭文件裏聲明DLL的導出函數在這裏插入圖片描述
    extern "C" __declspec(dllexport) int add(int a, int b);
    在這裏插入圖片描述

  13. 在主程序前包含這個頭文件#include "201903703.h",然後就可以在主程序裏調用這個DLL了

#include "pch.h"
#include <iostream>
#include "201903703.h"		//包含頭文件

int main()
{
    std::cout << add(1,2);		//可以直接調用了
}

成功調用了DLL,實現了加法函數,輸出了1+2的結果3在這裏插入圖片描述
動態加載DLL比靜態加載複雜,可以參考C++的一些書籍。
今天會創建動態鏈接庫並調用了,開心。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章