我想讓着色器文件加載程序進入我的程序。我正在從「Loading Shader」部分複製http://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/loading.php中的代碼。下面我有一個更簡化的非工作版本。左側。必須有類/結構/工會
我檢查了,我已經囊括了所有的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;
}
的錯誤e文件放在「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這是一個**臭名昭着的**不可靠的網站,儘管谷歌排名很高。考慮http://en.cppreference.com/w/cpp/io/basic_fstream –
@DrewDormann謝謝,我從來不知道。它解釋了很多。 – AAB