订阅所有文章
文章搜索

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

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

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

n         方法3:(自己写的)

我想法是先声明个抽象基类,DLL继承这个基类将类给实例化(代码化),并在DLL中导出这个类,EXE只要这个基类,去调用DLL的导出类函数! virtual void sum(int) = 0; 声明一个纯虚函数!这个方法只要一个动态库(DLL)和一个基类文件就可以了!!达到了我预期的要求!

 

基类文件:Test.h

 

//基类

//将这个文件提供给EXE调用

class Test

{

private:

  virtual int  sum(int, int) = 0;

public:

  virtual void ShowMess(char* ) = 0;

  virtual void Count(int) = 0;

};

 

 

DLL文件: DllMain.cpp

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

 

#include <vcl.h>

#include <windows.h>

//注意加上这个基类的文件

#include "TTest.h"

 

#pragma hdrstop

#pragma argsused

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

 

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)

{

  return 1;

}

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

//派生出一个新类Me,来自基类Test

class Me : public Test

{

private:

  virtual int  sum(int, int);

  int sum1(int, int, int);      //只能自己调用(基类中没有的)

public:

  virtual void ShowMess(char* );

  virtual void Count(int);

  void Count1(int);             //只能自己调用(基类中没有的)

};

 

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

int Me::sum(int a, int b)

{

  return a+b;

}

 

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

void Me::ShowMess(char* buf)

{

  ShowMessage(buf);

}

 

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

[1] [2] 下一页

  • 上一篇文章:

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