動態鏈結庫dll建立靜動態呼叫方法一例

2021-05-26 20:38:05 字數 2170 閱讀 3871

動態鏈結庫dll建立靜動態呼叫方法一例

動態鏈結庫dll建立 mfc_dll.dll

stdafx.h 中新增函式宣告

//定義求和函式--------------------------

extern "c" __declspec(dllexport) int __stdcall add_new(int a,int b);

extern "c" _declspec(dllexport) int winapi testc(int i);

extern "c" _declspec(dllexport) long __stdcall loop(int n);

extern "c" _declspec(dllexport) long __stdcall getnum(int n);

stdafx.cpp 中新增函式實現

//實現函式----------------------------

extern "c" __declspec(dllexport) int __stdcall add_new(int a,int b)

extern "c" __declspec(dllexport) int winapi testc(int i)

extern "c" __declspec(dllexport) long __stdcall loop(int n)

return sum;

}//1,1,2,3,5,8,13,21,....x(n)

extern "c" __declspec(dllexport) long __stdcall getnum(int n)

if (n > 2)

return r;

} mfc_dlltestconsole.exe 呼叫測試控制平台

靜態呼叫

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

//在頭檔案目錄中新增已有項mfc_dll.lib檔案

//新增test.h標頭檔案 並新增如下函式宣告

#pragma comment(lib,"mfc_dll.lib") //告訴編譯器dll相對應的lib檔案所在路徑和檔名

extern "c" _declspec(dllimport) int _stdcall add_new(int a,int b);//宣告匯入函式

extern "c" _declspec(dllexport) int _stdcall testc(int i);

extern "c" _declspec(dllexport) long _stdcall loop(int n);

extern "c" _declspec(dllexport) long _stdcall getnum(int n);

// mfc_dlltestconsole.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include //int _tmain(int argc, _tchar* argv)

////靜態呼叫

//#include "test.h"

//int main()

////動態呼叫

#include #include typedef int (* lpaddfun)(int ,int);//定義乙個與add_new函式接受引數型別和返回值均相同的函式指標型別

typedef int (* lpreturn)(int);

typedef long(* lploop)(int);

typedef long(* lpgetnum)(int);

int main()

//--the end

<<"\n"; std::cout="" char="" str="" std::cin="">

<<"\n"; returnaddr="(lpreturn)" getprocaddress="" if="" int="" result="returnaddr(200);" std::cout="" loopfun="(lploop)" long="" getnumfun="(lpgetnum)getprocaddress(hdll,'getnum');" freelibrary="" else="" char="" str="" std::cin="">

<<"\n";>

<<"\n";>

呼叫動態鏈結庫(dll)

步驟 1.tools options projects and solutions vc directories分別在包含檔案,庫檔案填加了路徑 這些路徑只告訴編譯器怎麼找檔案,沒有說把那裡面的檔案加入工程.若不設定,編譯報錯 無法開啟 檔案 2.project properties c c gen...

動態呼叫鏈結庫(dll) 續

最近一周做了乙個關於倉庫管理,揀貨任務分配的模組,其中涉及到刷卡自動列印領取任務的功能點。技術點 c 呼叫c delphi的動態鏈結庫。動態鏈結庫的呼叫方法不同。效果也不相同。dll位置 執行程式根目錄下面 例 第一種 dllimport shuipiao1.dll entrypoint check...

建立C 動態鏈結庫 dll

先來一段vc 給我們提供的標準模板 ifdef connection exports define connection api declspec dllexport else define connection api declspec dllimport endif 此類是從 connectio...