vs2019编译器报错 变量GLuint不是类型名

在使用Visual Studio 2019进行开发时,遇到编译器无法识别OpenGL定义类型的错误。通过在代码中包含`<windows.h>`头文件,可以解决这个问题,确保OpenGL类型在VS2019环境下被正确识别。

前言

vs2019编译器无法识别openGL定义的类型
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

解决

#include <windows.h>

语法错误: 缺少“;”(在“}”的前面) 语法错误:“.” 意外的标记位于“;”之前 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 “<”: 有符号/无符号不匹配 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 “<”: 有符号/无符号不匹配 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 语法错误:“.” 语法错误: 缺少“;”(在“}”的前面) 意外的标记位于“;”之前 初始值设定项太多 语法错误:“.” 语法错误: 缺少“;”(在“}”的前面) 意外的标记位于“;”之前 “<”: 有符号/无符号不匹配 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 “p”: 未声明的标识符 “p”: 未声明的标识符 “p”: 未声明的标识符 “p”: 未声明的标识符 “p”: 未声明的标识符 “p”: 未声明的标识符 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 “<”: 有符号/无符号不匹配 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 “<”: 有符号/无符号不匹配 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 语法错误:“.” 语法错误: 缺少“;”(在“}”的前面) 意外的标记位于“;”之前 语法错误:“.” 语法错误: 缺少“;”(在“}”的前面) 意外的标记位于“;”之前 语法错误:“.” 语法错误: 缺少“;”(在“}”的前面) 意外的标记位于“;”之前 语法错误:“.” 语法错误: 缺少“;”(在“}”的前面) 意外的标记位于“;”之前 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "color": 不是 "TextureColorVertex" 的成员 "normal": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "normal": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "normal": 不是 "TextureColorVertex" 的成员 "coordinate": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员 "texture": 不是 "TextureColorVertex" 的成员#pragma once #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/type_ptr.hpp> #include <string> #include "Shader.h" typedef struct { //glm::vec3 normal; //glm::vec3 coordinate; //glm::vec3 color; //glm::vec2 texture; .coordinate = glm::vec3(0.5f, 0.5f, 0.5f), .color = glm::vec3(0.0f, 0.0f, 1.0f), .texture = glm::vec2(1.0f, 0.0f), .normal = glm::vec3(0.0f, 1.0f, 0.0f) } TextureColorVertex; typedef struct { GLuint latSegments; GLuint longSegments; GLfloat radius; GLfloat height; }DataParam; class Object { public: Object(std::string vs, std::string fs, std::string texName = ""); virtual ~Object(); protected: Shader* shader; TextureColorVertex* vertices; GLushort * indices; GLuint indexCount; GLint verticesSize; GLuint indexSize; GLuint texture; GLuint VBO, VAO, EBO; protected: glm::mat4 model; float rotationSpeed; float revolutionSpeed; float rotationAngle; float revolutionAngle; glm::vec3 translation; GLsizei stride; void createBuffer(GLsizei stride,bool createEBO = false, GLenum ussage = GL_STATIC_DRAW); public: void createShader(const char* vs, const char* fs); virtual void initData(DataParam *param = nullptr) = 0; void setTexture(std::string texName); void render(glm::mat4& view, glm::mat4& projection); virtual void update(float dt) {} virtual void renderObject() = 0; virtual void updateDataBuffer(); }; #include "Cone.h" Cone::Cone(std::string vs, std::string fs, std::string texName) :Object(vs, fs, texName) { } Cone::~Cone() { } void Cone::initData(DataParam *param) { dataParam = *param; GLfloat radius = dataParam.radius; GLuint longSegments = dataParam.longSegments; //GLuint latSegments = param->latSegments; GLfloat height = dataParam.height; //float fPhi = glm::pi<float>() / latSegments; //纬度上角度差:Phi float fTheta = (glm::pi<float>() * 2.0f) / longSegments; //经度上角度差:Theta //生成顶点数据 verticesSize = 2 * (longSegments + 2);// *sizeof(TextureColorVertex); vertices = new TextureColorVertex[verticesSize]; verticesSize *= sizeof(TextureColorVertex); int start = 0; //生成侧面数据 vertices[start].coordinate.x = 0; vertices[start].coordinate.y = height / 2.0f; vertices[start].coordinate.z = 0; vertices[start].texture.s = 0.5; vertices[start].texture.t = 0.5; vertices[start].color.r = vertices[start].color.g = vertices[start].color.b = 1.0f; ++start; for (int i = start; i < start + longSegments + 1; i++) { vertices[i].coordinate.x = radius * cos(glm::pi<float>() * 2 - i * fTheta); vertices[i].coordinate.y = -height / 2.0f; vertices[i].coordinate.z = radius * sin(glm::pi<float>() * 2 - i * fTheta); vertices[i].texture.s = 0.5f + 0.5f * cos(glm::pi<float>() * 2 - i * fTheta); vertices[i].texture.t = 0.5f + 0.5f * sin(glm::pi<float>() * 2 - i * fTheta); vertices[i].color.r = vertices[i].color.g = vertices[i].color.b = 1.0f; } start += longSegments + 1; //生成下底顶点数据 vertices[start].coordinate.x = 0; vertices[start].coordinate.y = -height / 2.0f; vertices[start].coordinate.z = 0.0f; vertices[start].texture.s = 0.5f; vertices[start].texture.t = 0.5f; vertices[start].color.r = vertices[start].color.g = vertices[start].color.b = 1.0f; ++start; for (int i = start; i < start + longSegments + 1; i++) { vertices[i].coordinate.x = radius * cos(i * fTheta); vertices[i].coordinate.y = -height / 2.0f; vertices[i].coordinate.z = radius * sin(i * fTheta); vertices[i].texture.s = 0.5f + 0.5f * cos(i * fTheta); vertices[i].texture.t = 0.5f + 0.5f * sin(i * fTheta); vertices[i].color.r = vertices[i].color.g = vertices[i].color.b = 1.0f; } createBuffer(sizeof(TextureColorVertex)); delete[]vertices; revolutionAngle = 0.0f; rotationAngle = 0.0f; revolutionSpeed = 0.1f; rotationSpeed = 0.5f; } void Cone::renderObject() { glBindVertexArray(VAO); GLint first = 0; glDrawArrays(GL_TRIANGLE_FAN, first, dataParam.longSegments + 2); first += dataParam.longSegments + 2; glDrawArrays(GL_TRIANGLE_FAN, first, dataParam.longSegments + 2); } void Cone::update(float dt) { revolutionAngle += revolutionSpeed; rotationAngle += rotationSpeed; model = glm::mat4(1.0f); model = glm::rotate(model, glm::radians(revolutionAngle), glm::vec3(0.0f, 0.0f, 1.0f)); model = glm::translate(model, glm::vec3(0.0f, 4.0f, 0.0f)); model = glm::rotate(model, glm::radians(rotationAngle), glm::vec3(1.0f, 0.0f, 0.0f)); model = glm::scale(model, glm::vec3(1.0f, 1.0f, 1.0f)); } 不要动cone.cpp
11-15
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值