国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

用DEF文件從DLL中導出C++類

2019-11-17 05:48:53
字體:
來源:轉載
供稿:網友
       
要害字     DLL Def class 導出 類 

      用DEF從DLL導出一個函數,或用__declspec(dlleXPort)指令從DLL中導出一類,想必大家已經很熟悉了,也經常使用著。這里向大家介紹一種用DEF文件從DLL導出一個類的方法。具體原理或為什么就不廢話了,學會導出后,再慢慢回味吧。這里主要敘述操作步驟。

1。打開VC6.0,新建一個"Win32 Dynamic-Link Library"工程,假設叫DefClass,在“Dll kind”選擇界面中選擇“A simple dll PRoject”

2。新建一個文件,命名為DefClass.def,先暫時輸入下面的內容,并加入工程。

   LIBRARY DefClass

   EXPORTS  

3。向工程中加入一個類CMath,并添加一個Add方法,使之看起來如下:
      class CMath  
      {
      public:
            int Add(int a,in b);
            CMath();
            virtual ~CMath();
      };

  它的實現,你想如何由你決定,我做例子時,Add返回return a+b;

4。打開工程的設置(settings)界面,選擇Link,勾選Generate mapfile。

5。Rebuild all工程。

6。在VC中打開Debug或Release的*.map文件(假如你工程名這DefClass,那就是DelClass.map)。

7。找到Math.obj,比如:

 0001:00000080       ??0CMath@@QAE@XZ           10001080 f   Math.obj
 0001:000000c0       ??_ECMath@@UAEPAXI@Z       100010c0 f i Math.obj
 0001:000000c0       ??_GCMath@@UAEPAXI@Z       100010c0 f i Math.obj
 0001:00000130       ??1CMath@@UAE@XZ           10001130 f   Math.obj
 0001:00000170       ?Add@CMath@@QAEHHH@Z       10001170 f   Math.obj
8。把1,4,5行的第2列拷貝到DefClass.Def文件中,使之成為下面的樣子(序號自己指定)
 LIBRARY DefClass

 EXPORTS  
        ??0CMath@@QAE@XZ                         @1
       ??1CMath@@UAE@XZ               @2
      ?Add@CMath@@QAEHHH@Z     @3    

9。保存所有文件,再執行Rebuild All.

假如一切正常,那你的DLL中的類已經以序號導出的了。這時再往CMath中加函數,如上從map文件中找到函數的標識符,并在def文件中加一項,分配一個序號給它。只要保持以前的導出序號不變,用新編譯生成的DLL替換先前的DLL,以前的客戶程序仍然可以正常運行。

如何使用生成的DLL?

你可以把"Math.h"和"DefClass.lib"拷貝到客戶程序的工程目錄下,把"DefClass.dll"拷貝到客戶程序的輸出(debug/release)目錄下。 在客戶程序中#include "Math.h",在客戶程序的settings中加入對DefClass.lib引用。

CMath Math;
int nRet=Math.Add(2,3);
可以了嗎?不行來電喲clineyuan@sina.com

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 修武县| 神木县| 长兴县| 淮阳县| 远安县| 博罗县| 宜黄县| 简阳市| 右玉县| 无为县| 凤阳县| 望城县| 广昌县| 三河市| 望江县| 礼泉县| 巴东县| 偏关县| 苍南县| 南京市| 东兴市| 郸城县| 务川| 永顺县| 白玉县| 台湾省| 临清市| 曲周县| 龙江县| 剑川县| 太白县| 吴旗县| 富川| 宜兰县| 赫章县| 广河县| 岳西县| 伊宁县| 保康县| 临汾市| 南投市|