日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++中declspec(dllexport)和declspec(dllimport)?的用法介紹_C 語言

作者:農碼一生 ? 更新時間: 2022-06-26 編程語言

一、創建動態文件

1.添加頭文件dll.h,并輸入以下代碼:

#ifdef DLL_EXPORTS                        //如果在工程里已經添加預定義宏DLL_EXPORTS
#define DLLEXPORT __declspec(dllexport)   //那DLLEXPORT就指代__declspec(dllexport) 用于dll的導出
#else                                     //當工程中不包含DLL_EXPORTS預定義時
#define DLLEXPORT __declspec(dllimport)   //DLLEXPORT 就指代__declspec(dllimport) 
#endif

DLLEXPORT int add(int a, int b);//導出函數用
DLLEXPORT void foo();//導出函數用
class DLLEXPORT  __declspec(dllexport) a {};//導出類用 

2.在項目的屬性中的預處理其中定義DLL_EXPORTS,其他項目則不要定義。

3.在dll.cpp文件中實現方法:

#include "dll.h"

int add(int x,int y)
{
    return x+y;
}

4.編譯生成,則工程的debug目錄下就生成了.dll和.lib文件

二、創建調用動態文件

1.新工程中,創建添加源文件calldll.cpp,并輸入以下代碼:

#include "dll.h"
#include <iostream>

int main()
{
    int z;
    int x=1, y=2;
    z=add(x,y);
    std::cout<<z<<std::endl;
}

2.工程屬性進行以下設置:

(1)C/C++:“附加包含目錄”,添加dll.h頭文件目錄;

(2)鏈接器--常規: “附加庫目錄”,添加上面生成的dll.lib文件的目錄;

(3)鏈接器--輸入:“附加依賴項”,添加上面生成的dll.lib文件。

(4)代碼中開始位置手動引用靜態庫: #pragma comment(lib,"..\Testlib\Test.lib")

注:#pragma comment(lib,"..\upgradeLib\RKUpgrade.lib")

3.按照如上操作,即可成功生成并運行。即完成dll動態庫的調用。

注:

如果編譯通過后用行,提示丟失dll.dll文件的錯誤信息。
解決:將dll.dll放在和exe同一目錄下或放在c:\windows\system32目錄下(Win64位操作系統且dll.dll不是64位而是32位的話放在c:\windows\syswow64目錄下)

原文鏈接:https://www.cnblogs.com/wml-it/p/15951995.html

欄目分類
最近更新