Windows下動態庫的編譯以及呼叫

2021-07-03 08:04:13 字數 2413 閱讀 3098

1.mfc下生成動態庫

1>顯式呼叫

在.cpp檔案裡新增介面函式

1

int sum(int a,intb)2

56int sub(int a,intb)7

在.def檔案裡標示匯出介面

1 sum @1

; 2 sub @2;

編譯即可生成動態庫

在.exe裡呼叫

在標頭檔案裡新增

1

#pragma comment(lib,"testdll")

2int sum(int a,int

b);3

int sub(int a,int b);

1

public:2

void

initall();

3 cstring dectostr(int

dec);45

public:6

cstring str1,str2;

7int a,b;

button事件

1

void

ctestdlgdlg::onbuttonadd()

2

1

void

ctestdlgdlg::onbuttonsub()

2

1

void

ctestdlgdlg::initall()29

10 cstring ctestdlgdlg::dectostr(int

dec)

11

然後將相應的.dll和.lib拷貝到相應目錄即可。

2>隱式呼叫

在標頭檔案裡新增

1 typedef int (*pfunc)(int,int); 1

hmodule hdlllib;

2pfunc m_psum;

3 pfunc m_psub;

在bool ctestdlgdlg::oninitdialog()裡新增

1     hdlllib = loadlibrary("

testdll.dll");

2if (hdlllib ==null)

37 m_psum = (pfunc)(getprocaddress(hdlllib,"

sum"

));8 m_psub = (pfunc)(getprocaddress(hdlllib,"

sub"));

其他相應**

1

void

ctestdlgdlg::onbuttonadd() 29

10void

ctestdlgdlg::onbuttonsub()

1118

19void

ctestdlgdlg::initall()

2027

2829 cstring ctestdlgdlg::dectostr(int

dec)

30

2.win32下動態庫生成及呼叫

動態庫標頭檔案裡新增

1

extern"c

" win32dll_api int sum(int a,int

b);2

extern"c

" win3

2dll_api int sub(int a,int b);

.cpp檔案裡新增

1

extern"c

" win32dll_api int sum(int a,intb)2

56extern"c

" win32dll_api int sub(int a,intb)7

編譯即生成動態庫

呼叫在.exe標頭檔案裡新增

1

#pragma comment(lib,"win32dll")23

extern"c

"int sum(int a,int

b);4

extern"c

"int sub(int a,int b);

其他相應檔案

1

void

ctestdlgdlg::onbuttonadd() 29

10void

ctestdlgdlg::onbuttonsub()

1118

19void

ctestdlgdlg::initall()

2027

2829 cstring ctestdlgdlg::dectostr(int

dec)

30

以上**通過測試!

windows 下 curl動態庫編譯

2 在curl master同級目錄下新建deps資料夾,3 把openssl的庫檔案放在deps資料夾下 需要支援zlib的把zlib庫也放在deps資料夾下。沒有openssl可以自己用vcpkg編譯一下。4 接下來編譯64位的curl庫 開啟vs的命令列,順序執行以下命令 5 來編譯32位的c...

unix下動態庫編譯

1 unixware sco 編譯器建立 pic 的標誌是 kpic gcc 是 fpic 鏈結共享庫時 sco 編譯器用 g 而 gcc 用 shared cc c foo.c cc g o foo.so foo.o cc k pic g o testso calllib.c or gcc fpi...

windows下!boost庫的編譯選項

解壓縮,雙擊bootstrap.bat,會生成b2.exe。用visual studio tools下的vs20xx 開發人員命令提示輸入下面你需要的命令。編譯快慢視電腦的執行速度決定,差不多半小時左右。debug b2 install prefix e boost msvc 12.0 comple...