错误:"control may reach end of non-void function"



我一直在关注GLUT的BMP Loader视频。我一直在最后一个括号里得到错误"控制可能到达非无效函数的末尾"。如何解决此错误?我觉得很奇怪,如果文件"fp"没有打开,一开始就可能会在文件"fp"没有打开的情况下丢失它!

#include "Texture.h"
Texture::Texture(void* data, int w, int h, int format) {
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, format, GL_UNSIGNED_BYTE, data);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glBindTexture(GL_TEXTURE_2D, 0);
}
Texture* Texture::loadBMP(const char* filename) {
FILE* fp;
fp = fopen(filename, "r");
if (!fp) {
    cout << filename << "could not be opened!" << endl;
    fclose(fp);
    return NULL;
    }
}

这就是它所说的:程序有可能在没有return的情况下到达loadBMP的末尾。

当文件成功打开时,您需要决定要从该函数返回什么。

相关内容

最新更新