Der billigste Trick um heraufzufinden, in welchem Ordner du versuchst die Textur zu laden ist es, einfach eine Datei mit genau diesem Namen (oder einem leicht anderen) zu erstellen und dann zu gucken, wo sie landet. Normalerweise werden Dateien immer relativ zum aktuellen "Ausführungspfad" (oder wie auch immer das Fachwort ist) geladen, das ist meistens der Ordner der exe, er kann aber auch von außen festgelegt werden (durch VC beispielsweise).
Ich benutze sowas hier:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
class Filename
{
public:
Filename(std::string Filename);
std::string m_Filename;
std::string m_AbsFilename;
};
Filename::Filename(string Filename)
{
m_Filename=Filename;
m_AbsFilename=lexical_cast<string>(filesystem::absolute(filesystem::path(Filename)));
}
|
filesystem ist ein Teil von boost. Der Vorteil damit ist, dass ich immer sehe, wie ich die Datei lade ("../Data/Stuff/MyTexture.blub"), und wo sie gesucht wird ("C:/C++/MyProject/Data/Stuff/MyTexture.blub"), (in diesem Falle wäre das Ausführungsverzeichnis "C:/C++/MyProject/Bin"). Diese Art von Ausgabe ist unglaublich nützlich, wann immer es Probleme gibt, eine Datei zu laden.