C++动态库导出类
2015-09-15 01:53
375 查看
有时候希望在将整个类导出到动态库以供调用,如何做呢?示例如下:
我用VS2010首先创建了一个空的动态库工程用来生成一个供测试用的动态库,紧接着有创建一个空的win32控制台程序用来调用动态库的类,然后将这两个工程放到一个解决方案中。在各工程中新建头文件和源文件如下图:
其中,动态库工程的头文件(header.h)如下所示:
将这两个文件复制到测试工程的源文件目录下
测试工程的源文件(src.cpp)如下所示:
我用VS2010首先创建了一个空的动态库工程用来生成一个供测试用的动态库,紧接着有创建一个空的win32控制台程序用来调用动态库的类,然后将这两个工程放到一个解决方案中。在各工程中新建头文件和源文件如下图:
其中,动态库工程的头文件(header.h)如下所示:
#ifndef HEADER_H #define HEADER_H #ifdef AFX_CLASS #define AFX_EX_CLASS _declspec(dllexport) #else #define AFX_EX_CLASS _declspec(dllimport) #endif #endif class AFX_EX_CLASS cls { public: cls(int i,int j); int add(); private: int m; int n; };动态库工程的源文件(source.cpp)如下所示:
#define AFX_CLASS #include "stdafx.h" #include "header.h" cls::cls(int i,int j) { m = i; n = j; } int cls::add() { return m+n; }点击生成后在debug目录生成了动态库文件(DLL.dll)和引入库文件(DLL.lib).
将这两个文件复制到测试工程的源文件目录下
测试工程的源文件(src.cpp)如下所示:
#include ".\\..\\..\\DLL\\DLL\\\header.h" #pragma comment(lib,"DLL.lib") #include <iostream> using namespace std; void main() { cls *clsObj = new cls(2,3); int num = clsObj->add(); cout<<"result : "<<num<<endl; system("pause"); }测试结果:
相关文章推荐
- 神器VS2010:c/c++ &&&&&& masm->obj link编译与连接
- C语言之类型转换
- Simple Tips on C++(对于C++的一些建议)
- Simple Tips on C++(对于C++的一些建议)
- 在Visual Studio 2005/2008中编译C/C++程序
- vector的使用方法
- POJ C++程序设计 编程题#5 计算数组的低3位之和
- c++初步认识
- C++ Map简介
- c++中new/operator new/placement new
- 【C++学习】 之 const专题讲座
- OC语言基本语法
- C++反射
- effective c++ 别让异常逃离析构函数
- C++的STL进一步总结之set
- C++的STL进一步总结之map
- C++的STL进一步总结之pair
- OC语言中的类和对象
- c语言条件表达式
- 第2周项目3 体验复杂度(2)汉诺塔