fstream enthalten, aber "ifstream nicht gefunden" und "bezeichner ist undefiniert"

Ich weiß nicht, was ich davon halten soll. Ich habe eine Funktion geschrieben, die eine OBJ-Datei liest, ähnlich wie die Dutzenden anderer Beispielfunktionen zur Verarbeitung von Informationen aus einer Textdatei. Ich habe Fstream, Iostream und Sstream aufgenommen. Es kompiliert. Doch wenn ich es laufen lasse, bekomme ich:

Eine nicht behandelte Ausnahme bei einer Speicheradresse (ntdll.dll), die sich über den Schreibort für Zugriffsverletzungen beschwert (ich lese, schreibe nicht ...).

Meine Variablenüberwachung für "ifstream myfile" liest den Bezeichner "myfile" ist undefiniert. Wenn ich in der Zeile "ifstream myfile (...)" einen Umbruch mache, wird stattdessen "Speicher kann nicht gelesen werden" angezeigt. Fehler beim Lesen der Zeichen der Zeichenfolge tritt auch kurz vor der unbehandelten Ausnahme auf.

Execution stoppt hier in fstream während des getline-Aufrufs:

virtual void __CLR_OR_THIS_CALL _Lock()
{   // lock file instead of stream buffer
if (_Myfile)
    _CSTD _lock_file(_Myfile);
}

Relevanter Code, nicht viel zu sehen ... ziemlich einfaches Zeug. "file" ist ein const char *, das "C: \ cube.obj" liest. Verwenden des Namespace std.

ifstream myfile(file, ios::in);

if (myfile.is_open())
{
    if (myfile.good())
    {
        string line;
        while (std::getline(myfile, line))
        {
            // Foo
        }
    }
}

myfile.close();

Ich verstehe nicht, wie um alles in der Welt myfile undefiniert ist, obwohl ich es gerade deklariert habe. fstream ist eindeutig das richtige include und erreichbar. Die Datei befindet sich dort, wo sie sein sollte.

Wie kann ich das weiter debuggen? Lehre mich, meine Weisen. Verwenden von C ++ 11 mit Visual Studio 2013.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage