VS2013创建并使用DLL
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;
- };
- #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;
- }
项目源文件下添加.def文件。添加方法:添加—新建项—代码—模块定义文件。
最后生成解决方案,编译成功后可以在debug文件夹下发现mydll.dll和mydll.lib文件。
3.调用DLL项目
3.调用DLL项目
新建一个win32控制台的空项目,取名usemydll,然后引用dll步骤如下:
1.项目->属性->配置属性->VC++ 目录-> 在“包含目录”里添加头文件goods.h所在的目录
2.项目->属性->配置属性->VC++ 目录-> 在“库目录”里添加头文件mydll.lib所在的目录
3.项目->属性->配置属性->链接器->输入-> 在“附加依赖项”里添加“mydll.lib”
4.将dll项目下的debug文件中的mydll.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;
- }