2011-11-08 93 views
1

一整晚都把我的頭撞在桌子上。無法聲明fstream對象?但可以將其聲明爲指針?

我只是想聲明,像這樣的ifstream的對象....

ifstream inputStream; 

我得到這個錯誤:

Error 5 error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: char const & __thiscall std::_String_const_iterator<char,struct std::char_traits<char>,class std::allocator<char> >::operator*(void)const " ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@QBEABDXZ) C:\Users\Julz\Desktop\My Dropbox\3rdYear\2ndSemester\Games Prog\Game\DemocracyInvaders\Score.obj DemocracyInvaders 

我可以聲明它作爲像這樣的指針...

ifstream *inputStream; 

但只是那張頭疼當我嘗試在文件中的數據讀取和我想我應該明白爲什麼日基本聲明在嘗試一些被破解的修補程序之前不起作用。

我使用SDL,並具有以下包括在頭幾個文件下來...

#ifndef SDL_GRAPHICS_H //just a class I'm using to initialise my SDL stuff 
#define SDL_GRAPHICS_H 

#include <stdio.h> 
#include <iostream> 
#include <vector> 
#include <fstream> 
#include "SDL.h" 
#include "SDL_ttf.h" 

我試着調換SDL包括上述的C++的東西和各種變化,沒有什麼。 我的頭文件包含的都是正確的順序,我在想,如果include有問題,我不能將ifstream聲明爲指針?

哦,我試過使用fstream,甚至只是聲明ofstream,所有相同的錯誤。 也是,我嘗試使用什麼類(源或頭)並不重要,總是一樣。甚至試圖在我的驅動程序(主)文件中直接包含聲明它,沒有骰子... 完全失去了!

回答

7

看起來你沒有將C運行時鏈接到你的應用程序中。當聲明爲非指針時,至少將ifstream類的構造函數引入到您的應用程序中。看起來構造函數調用了一個函數,它是C運行時的一部分,因此最終會出現鏈接錯誤。

+1

或未能鏈接_correct_ CRT。 '__imp ___ CrtDbgReportW'看起來像是特定於調試CRT的東西。 – MSalters

+0

非常感謝,非常感謝。我在運行時庫中設置了錯誤的線程(東西)。我只是將它設置爲使用SDL的懶惰foo建議設置,我只是將它設置爲從父項繼承(或某些此類選項),而羅伯特的阿姨則生活在情人中! – Julz