我正在阅读一本看似很受欢迎的书,名为“ES 2.0 Programming Guide”。在本书中,有一个用于绘制三角形的简单 ES 2.0 程序的示例代码。这是给我编译问题的程序片段:
int Init ( ESContext *esContext )
{
UserData *userData = esContext->userData;
//etc... rest of the function
}
当我尝试编译时,此处的第 3 行给出错误 C2440: cannot convert void * to UserData *
程序后面有几个错误,我怀疑可能与此有关:
// Load the vertex/fragment shaders
vertexShader = LoadShader ( GL_VERTEX_SHADER, vShaderStr );
fragmentShader = LoadShader ( GL_FRAGMENT_SHADER, fShaderStr );
在这里,编译器对 vShaderStr 和 fShaderStr 有问题:GLbyte * is incompatible with param of type const char *
转换出了什么问题?为什么 esContext->userData 会出现问题?
示例代码以 C 语言提供。我正在尝试用 C++ 进行编译,但我不知道这究竟是如何影响它的,如果是的话。
谁能给我一些指导?这里是否有 C++ 不支持的 C 组件?是否有某种 C++ 组件会产生错误?
谢谢你的帮助!完整的示例代码可以在这里查看