Android OpenGL:GLbyte LoadShader转换

Android OpenGL:GLbyte LoadShader转换,android,c++,type-conversion,opengl-es-2.0,shader,Android,C++,Type Conversion,Opengl Es 2.0,Shader,我有一个关于类型兼容性的问题-请检查此示例: GLbyte vShaderStr[] = "attribute vec4 vPosition; \n" "void main() \n" "{ \n" " gl_Position = vPosition; \n" "} \n"; vertexShader = LoadSh

我有一个关于类型兼容性的问题-请检查此示例:

 GLbyte vShaderStr[] =
  "attribute vec4 vPosition;    \n"
  "void main()                  \n"
  "{                            \n"
  "   gl_Position = vPosition;  \n"
  "}                            \n";

 vertexShader = LoadShader ( GL_VERTEX_SHADER, vShaderStr );
LoadShader属于esUtil.h,代码来自同一本书OpenGL ES 2.0编程指南

这给了我们以下信息:

error: vertexShader = LoadShader(GL_VERTEX_SHADER, vShaderStr);
       Multiple markers at this line
   - initializing argument 2 of 'GLuint LoadShader(GLenum, const char*)'
   - invalid conversion from 'GLbyte*' to 'const char*'
有人能给我们一些启示。。。如何解决从“GLbyte*”到“const char*”的问题

如果我只是尝试不使用GLbyte,而是声明:

const char* vShaderStr[] ={...};
错误更改为:

cannot convert 'const char**' to 'const char*' for... 
   ...argument '2' to 'GLuint LoadShader(GLenum, const char*)'

OpenGL ES 2应该运行在移动中,所以我尝试编译和运行Android原生C++的代码示例。 有人知道这本书中提供的代码是否有很多bug?还是我做错了什么?如何解决本书中始终不变的转换问题


非常欢迎所有评论。

const char*vShaderStr[]是一个指针数组。改用
const char vShaderStr[]