我是靠谱客的博主 懵懂黑米,最近开发中收集的这篇文章主要介绍把C++类做成dll,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

在学windows程序设计时,学会了把函数做成动态链接库。学完C++后,也想过把类做成dll,但当时一直认为只能导出函数,怎么可能导出一个类呢。网上一查确实可以把C++类做成dll,冷静一分析,感觉这样做成的dll肯定也是利用以前导出单个函数一样的技术。毕竟类里的函数与类外的全局函数在编译后是一样的,只不过类里的函数多了一个this指针。按这样的道理,如果把一个类导出来,那类里的全部函数都会导出来,不管公有,保护还是私有。利用pe查看工具一看,果然如此。得到一个结论,看来这样做成的dll与com技术做成的dll完全不同。

如果已经写好了一个C++的类,希望把它做成dll动态链接库,这里介绍一种简单的方法。 
利用VC6新建工程时选择win32 dynamic-Link Library,然后添加头文件和cpp文件。假设类名为exp,添加头文件exp.h,头文件中声明类的定义,添加exp.cpp,其中是成员函数的具 体定义。与一般写类的定义不同,在exp.h中需要写成
class __declspec(dllexport) exp
{

}
从而说明以后从dll要被导出的类是哪一个。这样编译完就会产生exp.dll和exp.lib两个文件。

      当已经生成dll后,可以在其它程序中调用dll中的类和成员函数。方法如下:
      a)把exp.dll和exp.lib复制到调用程序的执行路径下,注意不是debug路径下。
      b)在project->setting->link里添加exp.lib
      c)把exp.h复制到调用程序的执行路径下,将__declspec(dllexport)改成__declspec(dllimport)
     这样在主程序中就可以使用exp.h中声明的类和它的成员函数了。

最后

以上就是懵懂黑米为你收集整理的把C++类做成dll的全部内容,希望文章能够帮你解决把C++类做成dll所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部