首页 > 编程语言 >C++的宏利用include和undef来重复使用

C++的宏利用include和undef来重复使用

时间:2023-01-22 09:55:08浏览次数:41  
标签:NvAPI USE undef C++ API NVIDIA fun include

如dll导出函数, 需要定义以及QueryInterface, 其中函数有多个, 如果想代码尽量简洁, 只有这个方法

  1. 定义
#define NVIDIA_API_DEF(_fun)	decltype(_fun)		* _##_fun = NULL;
#define NVIDIA_API_USE(_fun)	NVIDIA_API_DEF(_fun)
#include "../Library/nvapi/nvapi_list.h"
  1. 获取函数
#undef NVIDIA_API_USE
#define NVIDIA_API_GET(_fun)	bRetVal &= NVIDIA_GetApi(_##_fun,	#_fun);
#define NVIDIA_API_USE(_fun)	NVIDIA_API_GET(_fun)
#include "../Library/nvapi/nvapi_list.h"
  1. 列表文件宏
NVIDIA_API_USE(NvAPI_EnumPhysicalGPUs);
NVIDIA_API_USE(NvAPI_GPU_GetFullName);
NVIDIA_API_USE(NvAPI_GPU_GetThermalSettings);
NVIDIA_API_USE(NvAPI_GPU_PowerPolicyGetInfo);
NVIDIA_API_USE(NvAPI_GPU_PowerDeviceGetStatus);
...

标签:NvAPI,USE,undef,C++,API,NVIDIA,fun,include
From: https://www.cnblogs.com/zzz3265/p/17064241.html

相关文章

  • c++中运算符重载总结
    运算符重载的本质是函数重载。语法格式重载函数的一般格式如下:返值类型operator运算符名称(形参表列){    重载实体;}operator运算符名称在一起构成了新的函......
  • [C/C++] 简单实现按字符分割字符串split函数
    记录一下/***字符串str通过字符target进行分割*/vector<string>split(stringstr,chartarget){vector<string>res;intpos=0;while(po......
  • c/c++ mysql api函数
    一、常用APImysql_affected_rows()返回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。mysql_autocommit()切换autocommit模式,ON/OFFmysql_change_user()......
  • C++概述、选择结构、循环结构
    目录1C++概述1.1计算两个整数相加之和1.2计算三个整数相加之和2选择结构2.1小老鼠走迷宫1(if语句)2.2小老鼠走迷宫1(if语句)(多个单分支结构)2.3小老鼠走迷宫2(switch语句)2......
  • C++实战笔记(三)异常处理
    tags:C++Interview写在前面简单总结一下C++异常处理部分(Exception).异常只是C++为了处理错误提出的一种解决方案,并不是唯一的一种.异常处理特点异常处理的流程完全独立......
  • c++ return
    return本是上是一个拷贝过程,不过是右值拷贝,也就是无标记变量的拷贝。不管是返回指针还是返回值,return首先将要return的值存到eax寄存器中,回到父函数再将返回的值赋给变量......
  • 关于海明码的问题(语言-c++)
    提问:   我头都大了,想了半天也没想出这个括号里面是怎么算出来的,有明白的吗,请赐教下。解答: 以下是一个C++编程实现海明码的示例:#include<iostream>#include<strin......
  • Qt6.4.2 QSoundEffect 在 ubuntu22.04 下的不好用
    本着跟踪技术潮流和尝鲜精神,一直尽量让自己机器安装最新环境,还要经常保持升级。ubuntu版本是22.04,Qt是6.4.2。最近对morse码很感兴趣,想学习找不到合适工具,所以就用Qt6写一......
  • undefined reference to `__isoc99_sscanf'
    参考文章:​​http://www.linuxquestions.org/questions/programming-9/undefined-reference-to-%60__isoc99_sscanf%27-873058/​​原文关键内容:Youhaveglibcversionpri......
  • 【c++】高斯-约旦法求逆矩阵
    给出n阶方阵A,求解其逆矩阵A-1的方法:1.构造n×2n的矩阵(A,I)2.用高斯-约旦消元法将其化简为(I,A-1),即可得到A的逆矩阵A-1第一版的代码:voidinverse(doubleA[N][N]......