订阅所有文章
文章搜索

高级搜索这是社么?这是顶尖最新推出的文章增强型搜索功能!
全网 本站
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> VC >> 文章正文

如何将动态库(DLL)中的类导出(一)

作者:fatwave  来源:CSDN  点击  更新:2006-12-19 7:07:55  编辑: 画王w  字体

如何将动态库(DLL)中的类导出

Ø         开发系统:Windows 2000 + Service Pack 4

Ø         开发工具:C++ Builder 6.0 + Service Pack 4

Ø         前言

首先我要感谢所有在CSDN中帮助过我的人,特别是季世平和谢伟! 谢谢你们的帮助与支持!

我想如何写动态库(DLL)就不必多说了吧!!如果这方面还不太了解的话可以在网上找找“BCB 编写 DLL 终极手册”这篇文章,写得很祥细!!

当我会写动态库(DLL)和类的时候我就在想如何在动态库(DLL)中写个类,让程序(EXE)可以像“自己”的类一样调用,这样不就可以隐藏自己写类的代码了吗!但这个想法一直没有实现!后来因为工作的需要所以就慢慢摸索出三种方法来,下面分别介绍给大家!

n         方法1:(由谢伟提供)

将类的句柄写成导出函数让EXE调用,要解决的问题就是将这个类的句柄传给EXE即它的HANDLE传出,这种方法比较复杂,要为类的每个成员函数写个导出函数,并且EXE必须加入动态库(DLL)的lib文件!

 

 

DLL文件:MainDll.cpp

//---------------------------------------------------------------------------

 

#include <vcl.h>

#include <windows.h>

#pragma hdrstop

#pragma argsused

 

//---------------------------------------------------------------------------

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)

{

    return 1;

}

 

//---------------------------------------------------------------------------

//这句不要忘记加上! 定义DLL的导出函数

#include "MakeDll.h"

 

//---------------------------------------------------------------------------

//MakeDll类,相当于平时自己定义的类(一个简单的类)

class MakeDll

{

private:

    int       mNumber;

public:

    MakeDll();

    int       SetNumber(int iValue);

    void ShowOldValue();

    void ShowNewValue();

};

 

//---------------------------------------------------------------------------

//以下是类的定义

//---------------------------------------------------------------------------

MakeDll::MakeDll()

{

    mNumber = 100;

}

 

//---------------------------------------------------------------------------

int MakeDll::SetNumber(int iValue)

{

    mNumber = iValue;

 

 &n

[1] [2] [3] 下一页

  • 上一篇文章:

  • 下一篇文章:
  •      
    热门文章  
    推荐文章  
    相关文章    
     发表评论
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备05002835号