最近,我一直在使用GLEW学习OpenGL。为此,我正在使用visual studio社区IDE。出于某种原因,visual studio intellisense没有显示完整的函数签名,当我将鼠标悬停在glew中定义的任何函数上时,它只显示glew.h中定义的宏,而不是完整的函数定义。
例如,如果我将鼠标悬停在glVertexAttribPointer()上,则会显示:
#define glVertexAttribPointer GLEW_GET_FUN(_glewVertexAttribPointer)
。
如何让intellisense显示完整的功能签名?提前致谢
答案 0 :(得分:0)
通过将鼠标悬停在函数名称上而无法正常显示,因为它只是一个宏定义,而不是函数本身。例如,glVertexAttribPointer定义为:
#define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer)
__ glewVertexAttribPointer是隐藏在PFNGLVERTEXATTRIBPOINTERPROC的另一个宏定义后面的typedef,定义为:
typedef void(__stdcall *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)
有了这么多级别的间接性,IDE就很难将其视为一个普通的功能而且给你签名也就不足为奇了。但是,至少在我的Visual Studio 2017社区中,它只需键入glVertexAttribPointer,然后一旦打开括号,就会出现功能签名。在分隔参数时键入逗号时也会显示。这就是我打开括号时在我的Visual Studio中的样子:
它提供了一个非常方便的所有参数列表,并大胆提出您当前正在键入的论点。希望有所帮助。