c - gl.h - 如何隐藏函数原型
问题描述
我在 Linux 上工作。有一个包含 gl.h 的遗留 OpenGL 应用程序。我想定义一个函数指针来存储 glXGetProcAddress 结果:
typedef void (GLACTIVETEXTUREARB)(GLenum texture);
extern GLACTIVETEXTUREARB glActiveTextureARB;
但我收到以下错误:将 glActiveTextureARB 重新定义为不同类型的符号,以前的定义:gl.h:1966
我必须包含 gl.h,因为它包含基本类型定义,例如 GLenum。如何隐藏该函数原型?glext.h 基于 GL_GLEXT_PROTOTYPES 定义函数原型,但 gl.h 不使用它。
解决方案
使用定义重写原始名称:
#define glActiveTextureARB glh__glActiveTextureARB
#include<gl.h>
#undef glActiveTextureARB
顺便说一句,你gl.h
可能已经PFNGLACTIVETEXTUREARBPROC
定义了你想要的函数指针类型,所以你不需要重新定义它。
推荐阅读
- awk - 如何在双引号内使用 awk 变量?
- c - 这段代码是什么意思?fopen (pthis -> fname,w)
- hadoop - 如何使用 InputStream 读取 orcFile?
- apache-spark - 在 Spark 中安排任务
- javascript - 我收到 [Violation] 'setInterval' 处理程序在 chrome dev 中收到 N ms 警告,然后该应用程序被冻结
- c - 如何在c中的for循环中实现协程
- pdf - 互操作 PowerPoint 笔记页面
- spring-security - Spring:Mvc Rest api error=“invalid_grant”,error_description=“Bad credentials” in Spring oauth2 jdbc
- c++ - Qt SerialPort 数据接收
- vba - Vba代码从网页获取表格到excel