欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
例程詳析動(dòng)態(tài)鏈接庫
動(dòng)態(tài)鏈接庫(DLL,即 Dynamic-Link Library)是可執行的模塊,但它沒(méi)有自己的堆棧,必須在調用動(dòng)態(tài)鏈接庫函數的程序

環(huán)境下運行。動(dòng)態(tài)鏈接庫不僅可以作為一個(gè)運行模塊,包括函數代碼,而且可以包含程序以外的任何數據或資源(位圖、圖標

等等)。動(dòng)態(tài)鏈接庫就是給應用程序提供函數或者資源。

  動(dòng)態(tài)鏈接與靜態(tài)鏈接是相對立的。靜態(tài)鏈接的時(shí)候,可執行程序內包含了所訪(fǎng)問(wèn)的函數的代碼,可執行程序占用的空間較

大;但運行時(shí),不需要其他模塊支持,從而速度相對較快。動(dòng)態(tài)鏈接的可執行程序中不包含動(dòng)態(tài)訪(fǎng)問(wèn)的函數代碼,僅僅包含對

它的參考,運行時(shí)需要其他模塊(DLL)的支持,速度相對較慢。

  動(dòng)態(tài)鏈接庫是Windows的一種極其重要的技術(shù)。它使得開(kāi)發(fā)人員可以通過(guò)編寫(xiě)動(dòng)態(tài)鏈接庫,方便靈活的實(shí)現大型程序的開(kāi)

發(fā),按自己的意愿對操作系統進(jìn)行擴展。

  下面通過(guò)例子介紹如何在動(dòng)態(tài)鏈接庫中定義函數、資源、和類(lèi)以及如何在工程中使用動(dòng)態(tài)鏈接庫中已定義的函數、資源、

類(lèi)。

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

  第一步:

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

  第二步:

   在這個(gè)例子中,只有一個(gè)AppWizard屏幕出現,選擇MFC擴展DLL(MFC Extension DLL (using shared MFC DLL),點(diǎn)擊

FINISH生成工程。

  第三步:

   點(diǎn)擊File中的New,選擇C/C++ Header File,File Name中輸入dll,點(diǎn)擊OK,創(chuàng )建dll.h。輸入extern "C" __declspec(dllexport)

int fun(int x1,int x2,int x3); ,保存。

  第四步:

   點(diǎn)擊File中的New,選擇C++ Source File,File Name中輸入dll,點(diǎn)擊OK,創(chuàng )建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 , 重新生成一個(gè)工程,選擇MFC AppWizards(exe),項目名為mydlltest , 選擇Single

Document ,點(diǎn)擊FINISH,生成一個(gè)新的工程。選擇菜單中的Project àSet Active Project àmydlltest ,將mydlltest設為當前活動(dòng)工程

。

  第六步:

  拷貝…\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上點(diǎn)擊右鍵,選擇Add files to Project ,將mydll.dll添加到工程。
好了,我們的工作做完了,運行一下看看吧!

二、 類(lèi)的添加和使用步驟:

  在mydll中生成一個(gè)新類(lèi),類(lèi)的聲明處改為class AFX_EXT_CLASS CMyClass ,在此類(lèi)中和其他類(lèi)一樣添加自己需要的變量

和函數,編譯生成新的dll和lib,重復上面的第六步,在mydlltest中利用上面的方法生成一個(gè)myclass.h文件,拷貝mydll中

myclass.h的所有代碼到新生成的myclass.h中。在需要使用dll中CmyClass類(lèi)的文件中包含myclass.h,然后我們就可以向其他類(lèi)

一樣使用該類(lèi)了。

  三、 字符串的定義和使用

  在mydll中定義字符串資源,編譯生成新的dll和lib,重復上面的第六步,在mydlltest中的myclass.h中添加 #define IDS_MYSTR

1(假設我們定義的字符串資源的ID號為IDS_MYSTR),在需要是要該字符串的地方添加#include "myclass.h",即可使用該字

符串了。

  CString str2;
  str2.LoadString(IDS_MYSTR);

  四、 對話(huà)框的定義和使用

  在mydll中定義對話(huà)框資源,生成一個(gè)新類(lèi)CDlg,類(lèi)的聲明處改為class AFX_EXT_CLASS CDlg : public CDialog ,像其他對

話(huà)框一樣定義對話(huà)框的屬性和功能,編譯生成新的dll和lib,重復上面的第六步,在mydlltest中利用上面的方法生成一個(gè)dlg.h文件

,拷貝mydll中dlg.h的所有代碼到新生成的dlg.h中。在需要使用dll中此對話(huà)框資源的文件中包含dlg.h,然后我們就可以向其他

對話(huà)框一樣使用此對話(huà)框了。

  CDlg dlg;
  dlg.DoModal();

  好了,到這里我們所有的功能就都實(shí)現了,快編譯運行一下吧!

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Windows系統下的動(dòng)態(tài)鏈接庫淺談
C/C /C#使用C/C 動(dòng)態(tài)鏈接庫DLL 錯誤現象及解決辦法 圖文詳解
利用VC調用動(dòng)態(tài)鏈接庫中的函數
在VC++中創(chuàng )建DLL文件并加載
靜態(tài)鏈接庫LIB和動(dòng)態(tài)鏈接庫DLL的區別 創(chuàng )建和示例
C/C++語(yǔ)言編程系列008----手把手教你創(chuàng )建及調試動(dòng)態(tài)庫DLL程序
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久