1.mfc下生成動態庫
1>顯式呼叫
在.cpp檔案裡新增介面函式
1int 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);
1public:2
void
initall();
3 cstring dectostr(int
dec);45
public:6
cstring str1,str2;
7int a,b;
button事件
1void
ctestdlgdlg::onbuttonadd()
2
1void
ctestdlgdlg::onbuttonsub()
2
1void
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"));
其他相應**
1void
ctestdlgdlg::onbuttonadd() 29
10void
ctestdlgdlg::onbuttonsub()
1118
19void
ctestdlgdlg::initall()
2027
2829 cstring ctestdlgdlg::dectostr(int
dec)
30
2.win32下動態庫生成及呼叫
動態庫標頭檔案裡新增
1extern"c
" win32dll_api int sum(int a,int
b);2
extern"c
" win3
2dll_api int sub(int a,int b);
.cpp檔案裡新增
1extern"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);
其他相應檔案
1void
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...