下面我们直接步入正题。
1.首先在VS2017中新建Dll项目。
2.组织你的项目工程目录如下:
3.其中,MyDll.h文件中的代码为:
#pragma once #ifdef MY_DLL_EXPORTS # define MY_DLL_EXP __declspec(dllexport) #else # define MY_DLL_EXP __declspec(dllimport) #endif class MY_DLL_EXP HelloDll { public: void hello(); };
解释一下:我们想要导出一个类来供客户端程序使用,那么需要在提供给客户端程序使用的类的头文件中 class 和类名之间加上 __declspec(dllimport),而在我们编译这个 DLL 项目的时候,则需要使用 __declspec(dllexport)。
MyDll.cpp文件中的代码如下:
#include "stdafx.h" #include<iostream> #include"MyDll.h" void HelloDll::hello() { std::cout << "Hello,this is my dll ^_^"<<std::endl; }
4.在菜单栏中的“生成”中点击“重新生成代码”。
5.下面查看自己的.lib文件有没有成功生成。在项目的保存目录下,查看如果为下图的状态,即为生成成功。
6.下面就是编写使用dll的测试项目了。由于只需要运行一个main函数,所以只需创建win32控制台应用程序即可。创建成功后,整理目录如下:
TestMyDll.cpp文件中的代码如下:
#include "MyDll.h" int main() { HelloDll helloDll; helloDll.hello(); system("pause"); return 0; }
注意此处!!!将第5步重生成的.lib文件添加到资源文件中。
7.将生成的dll文件和lib文件放置测试项目目录下,如图:
8.点击项目中的生成,即可。
成功啦!!