Я пытаюсь загрузить загрузчик шейдерного файла в свою программу. Я копирую код с http://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/loading.php в разделе «Загрузка шейдеров». Ниже я имею более упрощенную нерабочую версию.Слева. должен иметь класс/struct/union
Я проверил, что я включил все файлы заголовков ifstream, что пример с веб-сайта включает в себя, но я получаю следующие ошибки:
error C2027: use of undefined type 'std::basic_ifstream<_Elem,_Traits>'
error C2228: left of '.good' must have class/struct/union
Мой заголовок файла выглядит следующим образом
#pragma once
#include <iostream> // std::cout, std::ios
#include <sstream> // std::stringstream
#include <istream>
using namespace std;
class ShaderHandler
{
public:
ShaderHandler(void);
virtual ~ShaderHandler(void);
unsigned long getFileLength(ifstream& sfile);
};
и источник выглядит следующим образом:
#include "StdAfx.h"
#include "ShaderHandler.h"
#include <Windows.h>
#include <GL/gl.h>
ShaderHandler::ShaderHandler(void)
{
}
ShaderHandler::~ShaderHandler(void)
{
}
unsigned long ShaderHandler::getFileLength(ifstream& sfile){
if(!(sfile.good())){
return 0;
}
return 0;
}
ошибки происходят в Sourc e file на "sfile.good()". Я не уверен в первой ошибке, потому что не понимаю, как я использую неопределенный тип. Я думал, что нужно использовать ifstream. Я не вижу заголовочный файл, который я могу включить для «basic_istream». Согласно http://en.cppreference.com/w/cpp/io/basic_istream, он должен быть в заголовке для istream, который я включил.
Для второй ошибки я просмотрел некоторые подобные вопросы и попытался использовать «->». Я обнаружил, что другая общая проблема заключалась в том, что переменная могла быть случайно объявлена как функция, но я не думаю, что это так. Как я могу исправить эти ошибки и что их вызывает?
Спасибо! Я избавился от других включений и добавил fstream. Он строит сейчас! Как вы узнали, что это было в Fstream? Это даже не упоминается в http://www.cplusplus.com/reference/fstream/ifstream/, а http://www.cplusplus.com/reference/fstream/fstream/ - совершенно другое. Это несколько версий или что-то еще? – AAB
@AABoucher Это, безусловно, ** ненадежный сайт, несмотря на высокий рейтинг Google. Рассмотрите http://en.cppreference.com/w/cpp/io/basic_fstream –
@DrewDormann Спасибо, я этого никогда не знал. Это объясняет многое. – AAB