转载:https://blog.csdn.net/weixin_39345003/article/details/80782218
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; }
项目源文件下添加.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; }