设为首页 加入收藏

TOP

教你如何在VC中导出C++类
2014-11-11 12:45:06 】 浏览:1126
Tags:何在 导出

  首先使用Wizard创建一个Win32 Dynamic-Link Library工程,然后定义一个简单的C++类CInDLL.由于该类会被工程之外的文件所引用,所以需要对这个类进行引出。因为只有引出后所生成的DLL中才带有供足够的信息以在连接和运行时被正确引入到进程空间中。有两种方法可以引出类,使用__declspec(dllexport)定义和使用定义文件。


  下面先讲使用__declspec(dllexport)的方法:将类定义改为:class __declspec(dllexport) CInDLL 就可以了。这样产生的工程在编译时是正确的但是在使用时会产生错误,因为你包含的头文件中也是使用__declspec(dllexport),而使用这个DLL的工程中并没有引出这个类,而是需要引入这个类)在使用时需要将类定义改为class __declspec(dllimport) CInDLL就可以了。


  使用定义文件可以有效的避免这个问题,SXS好问提示,这种方法是利用宏定义在不同的地方产生不同的编译代码:


  在头文件中加入如下的代码:


  #ifdef _CLASSINDLL


  #define CLASSINDLL_CLASS_DECL __declspec(dllexport)


  #else


  #define CLASSINDLL_CLASS_DECL __declspec(dllimport)


  #endif


  #endif // ClassInDLL_H


  //将class __declspec(dllexport) CInDLL改为class CLASSINDLL_CLASS_DECL


  CInDLL


  {


  CInDLL()


  ;……


  }


  在实现这个类的CPP文件的顶部加入#define _CLASSINDLL语句。


  #define _CLASSINDLLCInDLL::CInDLL(){}……


  这样一来在使用这个类时就可以不做任何改动了。


  编辑特别推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++中的指针使用方法解惑 下一篇使用VC实现JPG图片加载

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目