VS 使用C++编写对外接口并封装成DLL
- 一、接口的封装
- 二、VS设置
- 三、查看生成的DLL接口
一、接口的封装
首先创建头文件,包含我们所依赖的库的头文件名称,并且申明我们要对外封装的接口名称,示例:
头文件:
#pragma once
#ifdef CPPDLL_EXPORTS
#define CPPDLL_API __declspec(dllexport)
#else
#define CPPDLL_API __declspec(dllimport)
#endif#include <iostream>
#include <stdio.h>
#include <string>using namespace std;extern "C" CPPDLL_API void export_example_1(int a, int b, char*& add_);
extern "C" CPPDLL_API void export_example_2(int a, int b, char*& minus_);
源文件:
#define CPPDLL_EXPORTS
#include "example.h"CPPDLL_API void export_example_1(int a, int b, char*& add_)
{int c = a - b;string c_s = to_string(c);for (int i = 0; i < c_s.length(); i++){add_[i] = c_s[i];}
}CPPDLL_API void export_example_2(int a, int b, char*& minus_)
{int c = a - b;string c_s = to_string(c);for (int i = 0; i < c_s.length(); i++){minus_[i] = c_s[i];}
}
二、VS设置
这里的输出目录可以自定义我们导出时的dll的路径,当然在不设置的情况下,默认在项目路径中的x64/Release或者x64/Debug中。
将这两个地方设置成dll模式,然后点击确定。
然后点击生成->生成解决方案或者重新生成解决方案。
三、查看生成的DLL接口
然后,我们可以通过vs的开发者shell中输入命令行来查看我们的dll接口,方便我们在调用dll时查看接口:点击工具->命令行->开发者powershell。
这就可以查看到我们导出的dll的接口名称了。这里需要注意的一个点就是我们在头文件中,申明对外的接口时,需要加上extern “C”,否则我们导出的dll所包含的接口会含有一大串乱码,使得调用接口时变得复杂:
可以看到,没有加上extern “C” 的话,接口名称就会变得很长,但是好处是,可以看到接口接受的参数数据类型。具体的extern “C”的作用,可以参考这篇博客:extern “C”的作用详解