C++ 问题 怎么在C++11标准语法中调用C++20的类

一. 问题

在工作中,因为一个算法功能需要跟别的部门对接,他们提供了该算法的头文件.h静态库.lib动态库.dll。但是头文件中使用了C++20才有的新特性,如#include等,而本地使用的vs2015开发环境,只支持C++11标准语法,这种情况下,该怎么把该算法集成到本地项目中呢?

二.解决办法

首先解决办法就是对C++20用"C"语言风格进行封装,然后再vs2015中调用。可以解决该问题。
具体步骤如下:

1. 使用vs2019,新建一个动态链接库dll项目

C++ 问题 怎么在C++11标准语法中调用C++20的类_第1张图片

2. 因为头文件中使用C++20的新特性,将项目的C++语言标准改为C++20标准

C++ 问题 怎么在C++11标准语法中调用C++20的类_第2张图片

3. 将该算法的头文件.h和静态库.lib加载进项目中

C++ 问题 怎么在C++11标准语法中调用C++20的类_第3张图片C++ 问题 怎么在C++11标准语法中调用C++20的类_第4张图片
C++ 问题 怎么在C++11标准语法中调用C++20的类_第5张图片

4. 将调用的方法封装成一个函数,这个函数就是我们最后在vs2015中调用的函数·

ShadingDegree_Api.h

#if !defined(ESHADINGDEGREE_API_H)
#define ESHADINGDEGREE_API_H

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include 

#ifdef __cplusplus
extern "C" {
   
#endif 

	__declspec(dllexport) bool  __stdcall shadingDegree_api(Eigen

你可能感兴趣的:(C++学习,c++,c++20,开发语言)