1.DLL文件
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
2.创建DLL项目
创建win32应用控制台程序,取名为mydll,点击DLL选项。
新建goods.h 和goods.cpp 文件
goods.h
#pragma once
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
#include <iostream>
#include <string>
using namespace std;
class MYDLL_API GOODS
{
public:
GOODS::GOODS();
GOODS::~GOODS();
int setname(string name);
int setnum(int num);
int setperunit(int perunit);
int printinfo();
int getcost();
private:
string m_name;
int m_num;
int m_perunit;
};
goods.cpp
#include "goods.h"
GOODS::GOODS()
{}
GOODS::~GOODS()
{}
int GOODS::setname(string name)
{
m_name = name;
return 0;
}
int GOODS::setnum(int num)
{
m_num = num;
return 0;
}
int GOODS::setperunit(int perunit)
{
m_perunit =perunit;
return 0;
}
int GOODS::printinfo()
{
cout <<"name: " << m_name << endl;
cout << "num: " << m_num << endl;
cout << "perunit: " << m_perunit << endl;
return 0;
}
int GOODS::getcost()
{
int cost = m_num*m_perunit;
return cost;
}
3.调用DLL项目
新建一个win32控制台的空项目,取名usemydll,然后引用dll步骤如下:
1.项目->属性->配置属性->VC++ 目录-> 在“包含目录”里添加头文件goods.h所在的目录
2.项目->属性->配置属性->VC++ 目录-> 在“库目录”里添加头文件mydll.lib所在的目录
3.项目->属性->配置属性->链接器->输入-> 在“附加依赖项”里添加“mydll.lib”
4.将dll项目下的debug文件中的math.dll复制到当前项目的debug文件夹中
新建添加main.cpp文件
main.cpp
#include "goods.h"
int main()
{
GOODS book;
book.setname("book");
book.setnum(2);
book.setperunit(10);
book.printinfo();
cout << "cost: "<<book.getcost() << endl;
return 0;
}
参考文献:
【1】http://blog.csdn.net/shun_fzll/article/details/39078971
【2】http://blog.csdn.net/autumn_summer/article/details/23430533
【3】http://blog.csdn.net/missingu1314/article/details/9421085