寫乙個簡單的動態庫並呼叫

2021-09-26 13:50:16 字數 1704 閱讀 9451

動態庫分為靜態呼叫和動態呼叫。

話不多說,以下來介紹乙個簡單的動態庫的實現及呼叫。

先寫乙個動態庫,我這裡用的是win32來寫的乙個簡單的動態庫。建立時選擇dll,完成之後在.cpp檔案中寫下函式的實現,然後在.**件中宣告匯出檔案。生成檔案後,會在debug資料夾下生成.dll檔案和.lib檔案,這就是我們所要的東西。

.**件:

#ifdef win32project2_exports

#define win32project2_api __declspec(dllexport)

#else

#define win32project2_api __declspec(dllimport)

#endif

// 此類是從 win32project2.dll 匯出的

class win32project2_api cwin32project2 ;

extern win32project2_api int nwin32project2;

win32project2_api int fnwin32project2(void);

extern_c win32project2_api int add(int a, int b);

.cpp檔案:

#include "stdafx.h"

#include "win32project2.h"

#ifdef _debug

#define new debug_new

#endif

// 唯一的應用程式物件

using namespace std;

win32project2_api int add(int a, int b)

接下來就是呼叫動態庫了!!!

我這裡用的是mfc呼叫動態庫,建立乙個mfc應用程式,選擇基本對話方塊,然後在其控制面板上新增乙個按鈕button1,雙擊進去。然後在其中寫程式呼叫剛才生成的動態庫。在此之前,要先將之前生成的.dll檔案和.lib檔案放在你的mfc檔案下。

**如下:

//動態呼叫

typedef int(*add)(int a, int b); //巨集定義函式指標型別

; sprintf_s(strres, "和為%d", ret);

messageboxa(null, strres, null, 0);

}else

freelibrary(mdll); //解除安裝動態庫

}}//靜態呼叫

#pragma comment(lib,"win32project2.lib")

extern_c int __declspec(dllexport) add(int a, int b);

; sprintf_s(strres, "和為%d", count);

messageboxa(null, strres, null, 0);

// todo: 在此新增控制項通知處理程式**

}

這就是乙個最簡單的動態庫的實現與呼叫。

寫乙個簡單的組合語言並執行

最近在學彙編,剛剛開始學習發的博文都是一些比較簡單的入門的東西,希望以後會越來越好。接下來講一下怎樣寫乙個簡單的彙編指令碼並成功執行。大牛勿噴 首先用notepad 編寫一段匯程式設計序 這裡我是在32位的windows系統下寫的,學彙編推薦32位win因為自帶debug可以試調,64位的要自己再安...

寫乙個簡單的迷宮

二話不說 上迷宮 include include define number 13 int fx 4 int fy 4 void prin char arr number 列印 bool work char arr number int x,int y 判斷是否可以走 bool mymap char...

乙個簡單的C 呼叫C 動態鏈結庫的例子

之前由於一直是初學階段,搜尋網上呼叫教程都是加法器直接return a b 但是有時候我們需要返回多個引數,譬如如果我們從c 介面上輸入a和b,我們要呼叫c 計算a 和b 並返回到c 一直不會弄,只能多開幾個函式乙個乙個值返回太複雜了。方法 例子為計算兩個引數平方值並返回 1 在c 中新建乙個類,形...