This is the code I have for checking if a file exists in my visual studio 2010 c++ project:
bool GLSLProgram::fileExists( const string & fileName )
{
struct stat info;
int ret = -1;
ret = stat(fileName.c_str(), &info);
return 0 == ret;
}
I am not sure why it returns false for “shaders/color.vert” when that file really exists, and shaders is a folder in my project main folder.
Can you see something wrong?
THanks
Ok, so to illustrate the quirks of running from the IDE here’s a little test I did. Hopefully this should help you figure out how relative paths work in VS.
So my folder hierarchy looks like this:
The code looks as follows:
So if I run this in the IDE, I get “File doesn’t exist.”, if I run this outside the IDE, I get “File Found”. In order for the program to find the shader file from inside VS I have to put the shader folder like so:
You can however get the code to find the folder from inside and outside the IDE. What you have to do is go to your project’s settings. In “Debugging” and change “Working directory” to
$(SolutionDir)$(Configuration)\Hopefully this clears things up for you.