VS环境下生成和调用DLL动态链接库

时间:2024-04-14 20:00:12


一、生成动态链接库:


1、打开VS2015->文件->新建->项目->Visual C++->Win32->Win32控制台应用程序->将名称改为dll_generate->确定


2、出现Win32应用程序向导->下一步->在“应用程序类型”中选择“DLL”->在“附加选项”中选择“空项目”->完成

VS2015环境下生成和调用DLL动态链接库

3、视图->解决方案管理器->右键“头文件”->添加->新建项->选择“头文件”->命名为dll_generate->添加


4、点击进入dll_generate头文件,输入代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once 
//该宏完成在dll项目内部使用__declspec(dllexport)导出   
//在dll项目外部使用时,用__declspec(dllimport)导入   
//宏DLL_IMPLEMENT在dll_generate.cpp中定义   
#ifdef DLL_IMPLEMENT   
#define DLL_API __declspec(dllexport)   
#else   
#define DLL_API __declspec(dllimport)   
#endif 
   
namespace scsc 
    double DLL_API Mul(double a, double b); 

  


5、视图->解决方案管理器->右键“源文件”->添加->新建项->选择“C++文件(.cpp)”->命名为dll_generate->添加

 


6、点击进入dll_generate源文件,输入代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//------------------ dll_generate.cpp ----------------   
//注意此处的宏定义需要写在#include "dll_generate.h"之前   
//以完成在dll项目内部使用__declspec(dllexport)导出   
//在dll项目外部使用时,用__declspec(dllimport)导入   
#define DLL_IMPLEMENT 
#include"dll_generate.h" 
#include <iostream> 
   
using namespace std; 
   
namespace scsc  
    double Mul(double a, double b) 
    
        double c = a*b; 
        return c; 
    

  

 

7、点击生成->生成解决方案->由此可以在“工程文件路径\dll_generate\Debug”中得到dll_generate.dll和dll_generate.lib文件,在“工程文件路径\dll_generate\dll_generate”中得到dll_generate.h文件


二、调用动态链接库:


1、文件->新建->项目->Visual C++->Win32->Win32控制台应用程序->将名称改为dll_test->确定


2、出现Win32应用程序向导->下一步->在“应用程序类型”中选择“控制台应用程序”->在“附加选项”中选择“空项目”->完成


3、视图->解决方案管理器->右键“源文件”->添加->新建项->选择“C++文件(.cpp)”->命名为main->添加


4、将前面得到的dll_generate.h和dll_generate.lib复制到工程文件路径\dll_test\dll_test中,将dll_generate.dll复制到工程文件路径\dll_test\Debug中


5、视图->解决方案管理器->右键“头文件”->添加->现有项->选择dll_generate.h->添加


6、在main.cpp中输入代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//------------------ main.cpp -------------------   
#include "dll_generate.h" 
   
#pragma comment(lib, "dll_generate.lib") 
#include <iostream> 
using namespace scsc; 
using namespace std; 
   
void main() 
    double a = Mul(3, 2); 
    cout << a << endl; 
    system("pause"); 

  

7、运行程序,即可看到已成功生成和调用DLL

 

VS2015环境下生成和调用DLL动态链接库