File ';文件内容()';不';t返回类型GLchar 我在C中写的,但是我用C++编写。< /P>

File ';文件内容()';不';t返回类型GLchar 我在C中写的,但是我用C++编写。< /P>,file,opengl,File,Opengl,我已经阅读了第2.2章,由于这行代码,我无法进一步了解: GLchar * source = file_contents(filename, &length); 编译此返回“无法将'void'分配给'GLchar*'”(我可能在解释) 我在“file\u util.c”中查找“file\u contents”函数,唯一标记为“file\u contents”的函数是一个不返回任何内容的“void”函数。只需键入即可。在Cvoid*中,指针隐式地类型转换到其他指针类型。在C++中,你必须

我已经阅读了第2.2章,由于这行代码,我无法进一步了解:

GLchar * source = file_contents(filename, &length);
编译此返回“无法将'void'分配给'GLchar*'”(我可能在解释)


我在“file\u util.c”中查找“file\u contents”函数,唯一标记为“file\u contents”的函数是一个不返回任何内容的“void”函数。

只需键入即可。在C
void*
中,指针隐式地类型转换到其他指针类型。在C++中,你必须对它进行明确的说明。
GLchar * source = (GLchar*)file_contents(filename, &length);

你说它只是一个“void函数”是什么意思?参数需要
void
?这通常就是它的意思。你能添加
文件内容的声明吗?理想情况下,您应该创建一个,以便其他人能够更好地理解您的问题。此外,如果您的教程在线提供,您应该添加指向它的链接。这只会给我一个“Void*无法转换为GLchar*”错误。@user3391187:这是一个返回Void指针的函数,必须允许在指针类型之间进行显式转换。但也许C++编译器需要一些说服力。通常情况下,您会将其用于类实例,但它也可能对您有所帮助
GLchar*source=static_cast(文件内容(…)如果这不能很好地工作,那么您的程序或构建设置会遇到一些严重的其他问题。