Visual Studio 写自己的动态链接库(DLL)

时间:2021-02-23 15:49:36

有些时候,我们想写自己的函数库以避免重复写代码,此文介绍如何使用Visual Studio编写自己的动态链接库。


0,实验环境说明:

  集成开发环境:Visual Studio 10.0 

  操作系统: Windows 7

  语言:C/C++


1,编写自己的DLL

  我们分两部分介绍如何完成编写自己的DLL。

1.1,环境搭建

  介绍如何使用Visual Studio建立一个DLL工程,已经额外的配置。

  首先,建立一个dll的空工程,如下图所示:

Visual Studio 写自己的动态链接库(DLL)


Visual Studio 写自己的动态链接库(DLL)


添加两个文件,一个头文件(mydll.h),一个源文件(mydll.cpp),文件名根据自己的需要命名,这里并不需要写死文件名。

Visual Studio 写自己的动态链接库(DLL)


特别注意项目属性中是否存在类似如下图所示的内容,若无红框标记的宏,请添加合适的宏,例如MYDLL_EXPORT。

Visual Studio 写自己的动态链接库(DLL)


1.2,代码说明

向.h文件中添加如下内容:

[cpp] view plaincopyVisual Studio 写自己的动态链接库(DLL)Visual Studio 写自己的动态链接库(DLL)
  1. #ifndef __MY_DLL_H__  
  2. #define __MY_DLL_H__  
  3. #if (defined WIN32 || defined _WIN32 || defined WINCE) && defined MYDLL_EXPORTS  
  4. #  define AB_EXPORTS __declspec(dllexport)  
  5. #else  
  6. #  define AB_EXPORTS  
  7. #endif  
  8. AB_EXPORTS void func();  
  9. #endif  

上面的代码中,func就是我们自己定义的函数。

向.cpp文件中添加如下代码:

[cpp] view plaincopyVisual Studio 写自己的动态链接库(DLL)Visual Studio 写自己的动态链接库(DLL)
  1. #include "mydll.h"  
  2. #include <iostream>  
  3. void func(){  
  4.   std::cout << "hello func \n";  
  5. }  

执行生成命令之后,在生成目录下回出现如下的内容:

Visual Studio 写自己的动态链接库(DLL)


2,测试自己编写的DLL

添加一个Win32 Consol Application空项目,向新项目中添加cpp代码文件,并加入如下代码:

[cpp] view plaincopyVisual Studio 写自己的动态链接库(DLL)Visual Studio 写自己的动态链接库(DLL)
  1. #include "mydll.h"  
  2. #include <iostream>  
  3. using namespace std;  
  4. int main(){  
  5.   func();  
  6.   return 0;  
  7. }  


然后按如下图所示配置。

Visual Studio 写自己的动态链接库(DLL)



Visual Studio 写自己的动态链接库(DLL)


Visual Studio 写自己的动态链接库(DLL)


生成-> Ctrl + F5执行!如下图所示执行结果:

Visual Studio 写自己的动态链接库(DLL)