首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误与‘MinGW’和QT(MinGW)

错误与‘MinGW’和QT(MinGW)
EN

Stack Overflow用户
提问于 2015-05-04 01:20:41
回答 1查看 1.5K关注 0票数 1

我的QT应用程序中有以下代码:

FILE * file = fopen(m_fileName.c_str(), "rb");

,其中m_fileName的类型为std::string。此代码在VisualStudio2012中运行良好。但是在QT4.7.4 (MinGW编译器)中,我的程序在这一行崩溃。

我真的不知道这个代码有什么问题。我没有经常使用MinGW,所以肯定有一些我不知道的东西。

更新:

main.cpp代码

代码语言:javascript
复制
std::string fileName = "test1.bmp";
m_pTexture1 = new Texture(GL_TEXTURE_2D, fileName);
if (!m_pTexture1->Load()) {
   return;
}

Texture.cpp简化代码

代码语言:javascript
复制
Texture::Texture(GLenum TextureTarget, std::string FileName)
{
    m_textureTarget = TextureTarget;
    m_fileName = FileName;
}

bool Texture::Load()
{
    try {
        FILE * file = fopen(m_fileName.c_str(),"rb");
    }
    catch (...) {
        std::cout « "Error loading texture '" « m_fileName;
        return false;
    }
}

Texture.h

代码语言:javascript
复制
class Texture
{
public:
    Texture(GLenum TextureTarget, std::string FileName);
    bool Load();

private:
    std::string m_fileName;
    GLenum m_textureTarget;
    GLuint m_textureObj;
    unsigned int width, height;
    unsigned char * data;
};

“是的,”保尔·麦肯齐说得对。我试图在构造函数中打印m_fileName,结果它压垮了程序。看来m_fileName无法初始化。但是,我不知道为什么会这样。

更新2

我发现它是因为printf和其他C/O函数而崩溃的。很奇怪。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 01:25:11

您的代码是语法错误。(括号)

FILE * file = fopen(m_fileName.c_str()), "rb"); ^ this one

编译成功了吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30021303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档