C++ 无法读取内存

C++ 无法读取内存,c++,C++,我试图从文件加载着色器,但出现错误: 在绑定读取文件时。这两个文件作为一个整体项目在同一个文件中,因此不需要路径,对吗?即使我使用了来自c://lvl的整个路径,它也没有帮助——仍然是一样的 这就是我初始化着色器构造函数的方式: #include "Chart.h" Chart::Chart() : shader(new Shader("ChartVertexShader.fs", "ChartFragmentShader.vs")) { setData(); } 然后在着色器中,

我试图从文件加载着色器,但出现错误:

在绑定读取文件时。这两个文件作为一个整体项目在同一个文件中,因此不需要路径,对吗?即使我使用了来自c://lvl的整个路径,它也没有帮助——仍然是一样的

这就是我初始化着色器构造函数的方式:

#include "Chart.h"

Chart::Chart() : shader(new Shader("ChartVertexShader.fs", "ChartFragmentShader.vs"))
{
    setData();
}
然后在着色器中,它一直给我同样的错误。有人知道可能出了什么问题吗

此外,我还添加了几行代码来检查文件是否存在:就像你可以从截图中看到的一样

    std::ifstream ifile(vertexPath);
    std::ifstream ifilee(fragmentPath);
    if (ifile.good()) {
        std::cout << "EXIST" << std::endl;
    }
    if (ifilee.good())
    {
        std::cout << "EXIST" << std::endl;
    }
std::ifstream ifile(vertexPath);
std::ifstream-ifilee(碎片路径);
如果(ifile.good()){

std::cout-Well,_Tiestr是一个空ptr,因此您无法取消引用它并查看它指向什么,因为它没有指向任何东西(有效).可能你混淆了文件扩展名。我假设.fs代表片段着色器,但你称它为ChartFragmentShader。vs@ThunderStorm是的,这是顶点着色器和片段着色器。双重和三重检查文件路径。通过查看eof()、fail()和bad()的返回值,可以进一步检查问题所在。您可能想看一看,我一直在检查它,但它不起作用;/I明白了!我在完整路径中的每一个前面都加了一个``号。否则它对我不起作用。我尝试了很多读取文件的方法,但它不允许我这样做,即使文件位于项目路径中。