把C++类做成dll
来源:互联网 发布:linux保存文件命令 编辑:程序博客网 时间:2024/04/28 10:14
在学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
- 把Qt程序做成dll的方法
- 用VC把 图片做成独立的 DLL的方法
- 把封装的类做成静态库
- 用VS2010将C程序做成动态链接库dll
- 把PC做成CEPC
- 把uTorrent做成绿色版
- 把java做成绿色软件
- 把图标做成字体
- 把U盘做成系统盘
- 把项目做成jar包
- 把exe做成windows服务
- 把Tomcat做成系统服务
- C#.NET常见问题(FAQ)-如何把写好的类编译成dll文件
- vs2010 C# 如何将类做成DLL 再从另一个项目中使用这个类
- Unity 工程代码全部做成DLL
- 怎样把肉鸡做成Sock5代理跳板
- linux_把可执行程序做成一个服务
- Document 对象详解
- Linux 下用户空间与内核空间数据交换的方式
- C#文件读写补充知识
- MySQL Command Line[mysql命令行常用命令]
- 两个日期之间相差的天数
- 把C++类做成dll
- android 入门学习笔记 利用bundle实现android,activity间消息的传递
- Internet Explorer 错误代码
- 编写C#程序让其在Win7 下以管理员权限运行
- PHP 逻辑与(&&)妙用
- 如何拆宏碁(acer)笔记本--个人动手更换风扇、清理灰尘
- 对操作系统的理解
- 入门学习5:网络功能1
- CSpinButtonCtrl(SPIN控件)用法