亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

例程詳析動態鏈接庫

2019-11-17 05:34:19
字體:
來源:轉載
供稿:網友

  動態鏈接庫(DLL,即 Dynamic-Link Library)是可執行的模塊,但它沒有自己的堆棧,必須在調用動態鏈接庫函數的程序環境下運行。動態鏈接庫不僅可以作為一個運行模塊,包括函數代碼,而且可以包含程序以外的任何數據或資源(位圖、圖標等等)。動態鏈接庫就是給應用程序提供函數或者資源。

  動態鏈接與靜態鏈接是相對立的。靜態鏈接的時候,可執行程序內包含了所訪問的函數的代碼,可執行程序占用的空間較大;但運行時,不需要其他模塊支持,從而速度相對較快。動態鏈接的可執行程序中不包含動態訪問的函數代碼,僅僅包含對它的參考,運行時需要其他模塊(DLL)的支持,速度相對較慢。

  動態鏈接庫是Windows的一種極其重要的技術。它使得開發人員可以通過編寫動態鏈接庫,方便靈活的實現大型程序的開發,按自己的意愿對操作系統進行擴展。

  下面通過例子介紹如何在動態鏈接庫中定義函數、資源、和類以及如何在工程中使用動態鏈接庫中已定義的函數、資源、類。

  一、 函數的定義和使用方法:

  第一步:

   運行AppWizard,定義項目名為mydll,選擇MFC AppWizard(dll),而不是MFC AppWizards(exe)。

  第二步:

   在這個例子中,只有一個AppWizard屏幕出現,選擇MFC擴展DLL(MFC Extension DLL (using shared MFC DLL),點擊FINISH生成工程。

  第三步:

   點擊File中的New,選擇C/C++ Header File,File Name中輸入dll,點擊OK,創建dll.h。輸入extern "C" __declspec(dlleXPort) int fun(int x1,int x2,int x3); ,保存。

  第四步:

   點擊File中的New,選擇C++ Source File,File Name中輸入dll,點擊OK,創建dll.cpp。輸入

  #include "stdafx.h"
  #include "dll.h"
  extern "C" __declspec(dllexport) int fun(int x1,int x2,int x3)
   {
    return x1+x2+x3;
   }

  編譯生成mydll.dll和mydll.lib。

  第五步:

  選擇PRoject 中Add To Project 中的New , 重新生成一個工程,選擇MFC AppWizards(exe),項目名為mydlltest , 選擇Single Document ,點擊FINISH,生成一個新的工程。選擇菜單中的Project àSet Active Project àmydlltest ,將mydlltest設為當前活動工程。

  第六步:

  拷貝…/mydll/debug/mydll.dll 到 ../mydlltest/debug/下,拷貝…/mydll/debug/mydll.lib到…/mydlltest/目錄下。

  第七步:

  在mydlltestView.cpp中的#endif下添加

  extern "C" __declspec(dllimport) int fun(int x1,int x2,int x3);

  在void CMydlltestView::OnDraw(CDC* pDC)中添加代碼如下:

  void CMydlltestView::OnDraw(CDC* pDC)
   {
    CMydlltestDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    int x=fun(1,2,3);
    CString str;
    str.Format("%d",str);
    pDC->TextOut(10,10,x);
   }

  第八步:

  在WorkSpace中的mydlltest files上點擊右鍵,選擇Add files to Project ,將mydll.dll添加到工程。
好了,我們的工作做完了,運行一下看看吧!

  二、 類的添加和使用步驟:

  在mydll中生成一個新類,類的聲明處改為class AFX_EXT_CLASS CMyClass ,在此類中和其他類一樣添加自己需要的變量和函數,編譯生成新的dll和lib,重復上面的第六步,在mydlltest中利用上面的方法生成一個myclass.h文件,拷貝mydll中myclass.h的所有代碼到新生成的myclass.h中。在需要使用dll中CmyClass類的文件中包含myclass.h,然后我們就可以向其他類一樣使用該類了。

  三、 字符串的定義和使用

  在mydll中定義字符串資源,編譯生成新的dll和lib,重復上面的第六步,在mydlltest中的myclass.h中添加 #define IDS_MYSTR 1(假設我們定義的字符串資源的ID號為IDS_MYSTR),在需要是要該字符串的地方添加#include "myclass.h",即可使用該字符串了。

  CString str2;
  str2.LoadString(IDS_MYSTR);

  四、 對話框的定義和使用

  在mydll中定義對話框資源,生成一個新類CDlg,類的聲明處改為class AFX_EXT_CLASS CDlg : public CDialog ,像其他對話框一樣定義對話框的屬性和功能,編譯生成新的dll和lib,重復上面的第六步,在mydlltest中利用上面的方法生成一個dlg.h文件,拷貝mydll中dlg.h的所有代碼到新生成的dlg.h中。在需要使用dll中此對話框資源的文件中包含dlg.h,然后我們就可以向其他對話框一樣使用此對話框了。

  CDlg dlg;
  dlg.DoModal();

  好了,到這里我們所有的功能就都實現了,快編譯運行一下吧!怎么樣?還滿足嗎?


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区三区二区视频| 久久99热精品这里久久精品| 国产精品第一视频| 亚洲精品欧美日韩| 国内伊人久久久久久网站视频| 亚洲色图25p| 黑人极品videos精品欧美裸| 91香蕉亚洲精品| 欧美性猛交丰臀xxxxx网站| 日韩电影中文字幕在线| 国产成人a亚洲精品| 91国偷自产一区二区三区的观看方式| 蜜臀久久99精品久久久久久宅男| 久久久久久久久久久成人| 在线观看欧美www| 欧美激情免费看| 日本最新高清不卡中文字幕| 欧美专区在线视频| 国产日韩欧美在线播放| 69av成年福利视频| 成人黄色av免费在线观看| 一区二区三区视频免费| 欧美激情精品久久久久久免费印度| 欧美精品videosex性欧美| 欧美自拍视频在线观看| 性欧美亚洲xxxx乳在线观看| 日本久久久久亚洲中字幕| 国产精品自产拍在线观看| 亚洲性视频网址| 亚洲欧洲免费视频| 色综合久久88色综合天天看泰| 欧美中文字幕精品| 国产精品视频精品| 亚洲一区二区少妇| 欧美裸体xxxx极品少妇| 亚洲午夜久久久影院| 亚洲欧洲xxxx| 日韩大陆欧美高清视频区| 欧美激情a∨在线视频播放| 久久精品国产96久久久香蕉| 午夜精品一区二区三区在线| 国产欧美日韩高清| 色综合91久久精品中文字幕| 久久免费高清视频| 日韩欧美国产中文字幕| 成人欧美一区二区三区黑人| 亚洲国产精品悠悠久久琪琪| 亚洲人av在线影院| 亚洲欧洲黄色网| 日韩av在线一区二区| 成人黄色av免费在线观看| 国产精品av免费在线观看| 国产视频精品一区二区三区| 亚洲色图美腿丝袜| 韩国欧美亚洲国产| 超薄丝袜一区二区| 国产精品一香蕉国产线看观看| 日韩av影片在线观看| 欧美大荫蒂xxx| 国产精品高潮呻吟久久av黑人| 亚洲深夜福利视频| 色诱女教师一区二区三区| 欧美成人精品影院| 久久久免费精品视频| 国产偷国产偷亚洲清高网站| 欧美日韩国产限制| 成人激情免费在线| 欧美精品一区三区| 国产91精品视频在线观看| 成人97在线观看视频| 不卡av日日日| 亚洲天堂网在线观看| 亚洲福利视频二区| 欧美激情精品久久久久| 亚洲影视中文字幕| 久久久伊人欧美| 精品久久久久久中文字幕大豆网| 国产97在线亚洲| 日韩欧美aⅴ综合网站发布| 欧美激情视频网站| 国产精品久久久久91| www日韩中文字幕在线看| 国产亚洲一级高清| 欧美在线视频a| 国内精品久久久久久久| 日韩在线一区二区三区免费视频| 亚洲视频免费一区| 亚洲欧美中文在线视频| 久久久久久久久久国产| 亚洲最大在线视频| 91超碰caoporn97人人| 黑人极品videos精品欧美裸| 国产va免费精品高清在线| www欧美xxxx| 黑人精品xxx一区一二区| 欧美极品美女电影一区| 国产欧美中文字幕| 欧美激情一区二区三区久久久| 欧美与黑人午夜性猛交久久久| 日韩av在线看| 91在线视频精品| 久久久噜噜噜久久久| 黑人巨大精品欧美一区二区三区| 国产精品欧美激情在线播放| 亚洲欧美中文在线视频| 色偷偷噜噜噜亚洲男人的天堂| 久久久久久中文字幕| 国产精品成人久久久久| 亚洲黄色www| 欧美日韩免费网站| 亚洲最大福利视频网站| 久久久久久久久久久久av| 中文字幕久久久av一区| 97香蕉超级碰碰久久免费的优势| 日韩网站在线观看| 亚洲在线视频福利| 国产精品永久在线| 亚洲最大成人免费视频| 伦理中文字幕亚洲| 亚洲色图国产精品| 热久久视久久精品18亚洲精品| 国产精品亚洲片夜色在线| 亚洲区在线播放| 亚洲欧美中文另类| 欧美日韩一区二区免费视频| 欧美成年人视频| 中文字幕日韩在线播放| 亚洲国产99精品国自产| 91久久国产精品| 国产福利成人在线| 国产精品视频播放| 欧美亚洲午夜视频在线观看| 欧美在线免费视频| 色婷婷成人综合| 中文字幕亚洲综合久久筱田步美| 国产成+人+综合+亚洲欧美丁香花| 成人性生交大片免费看视频直播| 欧美午夜激情小视频| 综合激情国产一区| 91网站在线看| 92看片淫黄大片欧美看国产片| 一本色道久久88综合亚洲精品ⅰ| 岛国视频午夜一区免费在线观看| 91国语精品自产拍在线观看性色| 国产一区二区三区网站| 国产一区二区三区欧美| 日韩在线观看视频免费| 日韩av电影免费观看高清| 亚洲老板91色精品久久| 91国内产香蕉| 色偷偷亚洲男人天堂| 久久精品成人动漫| 精品五月天久久| 日韩性生活视频| 国产午夜一区二区| 自拍偷拍亚洲精品| 国产乱肥老妇国产一区二| 欧美日韩一区二区三区在线免费观看| 亚洲国产精品久久久久久| 国产精品国产自产拍高清av水多| 国产91网红主播在线观看| 国产亚洲欧美一区| 91国产精品电影| 国产精品久久久久久一区二区|