使用dll的好处: 隐藏了代码,公开了功能。
在VS2017中,创建一个DLL工程项目,将你的代码写入.cpp文件中,然后比如 这样:
//////////// test.cpp #include "stdafx.h" #include "first.h" #include <Windows.h> #include <iostream> using namespace std; void show(void) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED); cout << " 加"; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN); cout << "油"; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE); cout << ","; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE); cout << "给"; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN); cout << "自"; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE); cout << "己"; }
再创建一个.h文件 此时要用到VS的专用关键字 __declspec(dllexport)
///// test.h #pragma once __declspec(dllexport) void show(void);
除此之外 ,打开项目的属性页,将【预编译头】设置为【不使用预编译头】,将【代码生成】中的【运行库】设置为【多线程调试(/MTd)】,然后生成解决方案,就可以了,生成以后,我们可以在项目的debug文件中找到 对应的 dll 、lib文件。
动态链接库的使用:
将生成的lib和dll文件拷贝到要使用它们的项目文件中,在使用了他们的代码上面写上
#pragma comment(lib,"Dll1.lib") // 双引号里写的是 要使用的动态链接库的名字 __declspec(dllimport) void show(void);
就可以了。
注意事项: 在项目生成.exe文件后,必须将使用过的库放入同一目录下,.exe文件才能正常运行,否则会报错。
如果说,我们想要把这个应用程序发送给一个没有安装vs2017环境的电脑中运行,我们还要添加这些个dll