成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++常規DLL應用方式介紹

開發 后端
C++常規DLL如何正確創建,又該如何正確使用呢?在這篇文章中我們將會為大家詳細介紹一下相關的概念,幫助大家解決一些問題。

C++中的DLL應用在實際編程中是非常重要的一個基礎概念,掌握了這一應用對于我們程序開有著非常重要的作用。在這里我們將會針對C++常規DLL做一個詳細介紹,希望能給大家帶來一些幫助。

C++常規DLL的建立與使用

1:導出函數

  1. __declspec(dllexport) void ShowDlg(void)  
  2. {  
  3. CDllDialog dllDialog;  
  4. dllDialog.DoModal ();  

2:修改.def文件,加上函數名稱

  1. ; DrawTestDll.def : Declares the module parameters for the DLL.  
  2.  
  3. LIBRARY "DrawTestDll"  
  4. DESCRIPTION 'DrawTestDll Windows Dynamic Link Library'  
  5.  
  6. EXPORTS  
  7. ; Explicit exports can go here 

3:將DLL文件復制到程序所在目錄

4:在程序里調用DLL

  1. void CDllTestView::OnLButtonDown(UINT nFlags, CPoint point)  
  2. {  
  3. typedef void (*lpFun)(void);  
  4. HINSTANCE hDll; //DLL句柄  
  5. hDll = LoadLibrary("DrawTestDll.dll"); //加載DLL資源  
  6. if (NULL==hDll) //尋找順序,EXE所在目錄,工程所在目錄,System、windows目錄  
  7. {  
  8. MessageBox("DLL加載失敗");  
  9. }  
  10. lpFun addFun; //函數指針  
  11. addFun = (lpFun)GetProcAddress(hDll,"ShowDlg"); //得到函數ShowDlg的地址  
  12. if (NULL==addFun)  
  13. {  
  14. MessageBox("DLL中函數尋找失敗");  
  15. }  
  16. HINSTANCE exe_hinstance=AfxGetResourceHandle(); //得到主程序的實例句柄  
  17. AfxSetResourceHandle(hDll); //設置主程序的句柄為DLL實例(利用DLL里的資源)  
  18. addFun(); //調用函數  
  19. AfxSetResourceHandle(exe_hinstance);//重新設置主程序的實例句柄  
  20. FreeLibrary(hDll); //赦放DLL資源  

C++常規DLL中類的使用

1:DLL中添加新類

類的.h文件:
 

  1. //導出一個類(包括其方法、屬性)  
  2. class _declspec(dllexport) CDllClass {  
  3. public:  
  4. CDllClass(void);  
  5. void MSG(const char * const str);  
  6. }; 

類的.cpp文件:

  1. #include "stdafx.h"  
  2. #include "DllClass.h"  
  3.  
  4. CDllClass::CDllClass()  
  5. {  
  6. return;  
  7. }  
  8. void CDllClass::MSG(const char * const str)  
  9. {  
  10. MessageBox(NULL,str,"",MB_OK);  

2:將編譯好的DLL文件、Lib文件和類的頭文件復制到工程目錄

3:修改類的頭文件(將dll的頭文件中為 dllexport,在應用文件中為dllimport)

  1. //導入一個類(包括其方法、屬性)  
  2. class _declspec(dllimport) CDllClass {  
  3. public:  
  4. CDllClass(void);  
  5. void MSG(const char * const str);  
  6. }; 

4:在調用類的實現函數的文件里加上類的頭文件和Lib文件的引用

  1. #include "DllClass.h" //頭文件的引入,是程序可以定義類的對象  
  2. #pragma comment(lib,"DrawDll.lib") //具體函數的定義 

正常使用即可。以上就是對C++常規DLL的相關介紹。

【編輯推薦】

  1. C++冒泡排序基本應用技巧分享
  2. C++ Vector用法深入剖析
  3. C++集合初始化基本概念概述
  4. 刪除C++容器值相關技巧講解
  5. C++ Builder操作Excel表實現技巧講解
責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-04 14:29:45

C++ typenam

2010-02-06 17:39:52

C++ strtok

2010-02-05 16:46:58

C++ TinyXml

2010-02-03 14:10:28

C++內存邏輯區域

2010-01-25 14:56:08

C++程序

2010-02-03 10:11:17

C++動態數組

2010-02-03 15:27:26

C++ static

2010-02-04 13:39:44

C++數組參數

2010-02-06 16:39:45

C++ assert(

2010-02-01 17:31:06

C++類成員

2010-02-05 10:46:10

C++文件流

2010-02-01 10:32:01

C++文件操作

2010-02-05 14:36:20

C++智能指針

2010-02-03 16:29:19

C++ sizeof

2010-02-03 17:06:36

C++對象復制

2010-02-04 11:15:28

C++模板限制

2010-02-05 14:12:46

C++聲明放置

2010-02-02 14:45:35

C++ typeof

2009-08-07 17:12:07

C# DLL函數

2010-03-26 16:17:24

Python嵌入
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩三区 | 你懂的在线视频播放 | 久久久精品黄色 | 一级毛片免费看 | 久久久国产一区二区三区四区小说 | 日韩欧美中文字幕在线观看 | 精品国产乱码久久久久久88av | 又黄又色 | 日韩欧美一区二区三区免费看 | 欧洲免费毛片 | 国产999在线观看 | 亚洲精品99 | 欧美精品被 | 久久狠狠 | 中文字幕在线免费 | 成人国产免费视频 | 久久亚洲一区二区三 | 国产视频一区在线观看 | 亚洲精品视频在线观看视频 | 激情欧美日韩一区二区 | 欧美日韩免费在线 | 羞羞的视频在线看 | 欧美综合一区二区 | 亚洲狠狠丁香婷婷综合久久久 | 天堂一区二区三区 | 天天射影院 | 国产一区久久久 | 狠狠狠干 | 亚洲精品视频免费观看 | 91成人精品视频 | 伦理午夜电影免费观看 | 国产精品一区在线观看 | av在线天天| 九色 在线| 精品亚洲第一 | 欧美不卡视频 | 国产精品久久久久久妇女6080 | 五月天婷婷激情 | 最新国产精品视频 | 亚州一区二区三区 | www免费视频|