;
; Definition file of MSVCRT10.dll
; Automatic generated by gendef
; written by Kai Tietz 2008
;
LIBRARY "MSVCRT10.dll"
EXPORTS
; public: __thiscall Iostream_init::Iostream_init(class ios &,int)
??0Iostream_init@@QAE@AAVios@@H@Z ; has WINAPI (@8)
; public: __thiscall Iostream_init::Iostream_init(void)
??0Iostream_init@@QAE@XZ
; public: __thiscall filebuf::filebuf(class filebuf const &)
??0filebuf@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall filebuf::filebuf(int)
??0filebuf@@QAE@H@Z ; has WINAPI (@4)
; public: __thiscall filebuf::filebuf(int,char *,int)
??0filebuf@@QAE@HPADH@Z ; has WINAPI (@12)
; public: __thiscall filebuf::filebuf(void)
??0filebuf@@QAE@XZ
; public: __thiscall fstream::fstream(class fstream const &)
??0fstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall fstream::fstream(int)
??0fstream@@QAE@H@Z ; has WINAPI (@8)
; public: __thiscall fstream::fstream(int,char *,int)
??0fstream@@QAE@HPADH@Z ; has WINAPI (@16)
; public: __thiscall fstream::fstream(char const *,int,int)
??0fstream@@QAE@PBDHH@Z ; has WINAPI (@16)
; public: __thiscall fstream::fstream(void)
??0fstream@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall ifstream::ifstream(class ifstream const &)
??0ifstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall ifstream::ifstream(int)
??0ifstream@@QAE@H@Z ; has WINAPI (@8)
; public: __thiscall ifstream::ifstream(int,char *,int)
??0ifstream@@QAE@HPADH@Z ; has WINAPI (@16)
; public: __thiscall ifstream::ifstream(char const *,int,int)
??0ifstream@@QAE@PBDHH@Z ; has WINAPI (@16)
; public: __thiscall ifstream::ifstream(void)
??0ifstream@@QAE@XZ ; has WINAPI (@4)
; protected: __thiscall ios::ios(class ios const &)
??0ios@@IAE@ABV0@@Z ; has WINAPI (@4)
; protected: __thiscall ios::ios(void)
??0ios@@IAE@XZ
; public: __thiscall ios::ios(class streambuf *)
??0ios@@QAE@PAVstreambuf@@@Z ; has WINAPI (@4)
; protected: __thiscall iostream::iostream(class iostream const &)
??0iostream@@IAE@ABV0@@Z ; has WINAPI (@8)
; protected: __thiscall iostream::iostream(void)
??0iostream@@IAE@XZ ; has WINAPI (@4)
; public: __thiscall iostream::iostream(class streambuf *)
??0iostream@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; protected: __thiscall istream::istream(class istream const &)
??0istream@@IAE@ABV0@@Z ; has WINAPI (@8)
; protected: __thiscall istream::istream(void)
??0istream@@IAE@XZ ; has WINAPI (@4)
; public: __thiscall istream::istream(class streambuf *)
??0istream@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; public: __thiscall istream_withassign::istream_withassign(class istream_withassign const &)
??0istream_withassign@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall istream_withassign::istream_withassign(class streambuf *)
??0istream_withassign@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; public: __thiscall istream_withassign::istream_withassign(void)
??0istream_withassign@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall istrstream::istrstream(class istrstream const &)
??0istrstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall istrstream::istrstream(char *)
??0istrstream@@QAE@PAD@Z ; has WINAPI (@8)
; public: __thiscall istrstream::istrstream(char *,int)
??0istrstream@@QAE@PADH@Z ; has WINAPI (@12)
; public: __thiscall ofstream::ofstream(class ofstream const &)
??0ofstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall ofstream::ofstream(int)
??0ofstream@@QAE@H@Z ; has WINAPI (@8)
; public: __thiscall ofstream::ofstream(int,char *,int)
??0ofstream@@QAE@HPADH@Z ; has WINAPI (@16)
; public: __thiscall ofstream::ofstream(char const *,int,int)
??0ofstream@@QAE@PBDHH@Z ; has WINAPI (@16)
; public: __thiscall ofstream::ofstream(void)
??0ofstream@@QAE@XZ ; has WINAPI (@4)
; protected: __thiscall ostream::ostream(class ostream const &)
??0ostream@@IAE@ABV0@@Z ; has WINAPI (@8)
; protected: __thiscall ostream::ostream(void)
??0ostream@@IAE@XZ ; has WINAPI (@4)
; public: __thiscall ostream::ostream(class streambuf *)
??0ostream@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; public: __thiscall ostream_withassign::ostream_withassign(class ostream_withassign const &)
??0ostream_withassign@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall ostream_withassign::ostream_withassign(class streambuf *)
??0ostream_withassign@@QAE@PAVstreambuf@@@Z ; has WINAPI (@8)
; public: __thiscall ostream_withassign::ostream_withassign(void)
??0ostream_withassign@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall ostrstream::ostrstream(class ostrstream const &)
??0ostrstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall ostrstream::ostrstream(char *,int,int)
??0ostrstream@@QAE@PADHH@Z ; has WINAPI (@16)
; public: __thiscall ostrstream::ostrstream(void)
??0ostrstream@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall stdiobuf::stdiobuf(class stdiobuf const &)
??0stdiobuf@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall stdiobuf::stdiobuf(struct _iobuf *)
??0stdiobuf@@QAE@PAU_iobuf@@@Z ; has WINAPI (@4)
; public: __thiscall stdiostream::stdiostream(class stdiostream const &)
??0stdiostream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall stdiostream::stdiostream(struct _iobuf *)
??0stdiostream@@QAE@PAU_iobuf@@@Z ; has WINAPI (@8)
; protected: __thiscall streambuf::streambuf(char *,int)
??0streambuf@@IAE@PADH@Z ; has WINAPI (@8)
; protected: __thiscall streambuf::streambuf(void)
??0streambuf@@IAE@XZ
; public: __thiscall streambuf::streambuf(class streambuf const &)
??0streambuf@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall strstream::strstream(class strstream const &)
??0strstream@@QAE@ABV0@@Z ; has WINAPI (@8)
; public: __thiscall strstream::strstream(char *,int,int)
??0strstream@@QAE@PADHH@Z ; has WINAPI (@16)
; public: __thiscall strstream::strstream(void)
??0strstream@@QAE@XZ ; has WINAPI (@4)
; public: __thiscall strstreambuf::strstreambuf(class strstreambuf const &)
??0strstreambuf@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall strstreambuf::strstreambuf(int)
??0strstreambuf@@QAE@H@Z ; has WINAPI (@4)
; public: __thiscall strstreambuf::strstreambuf(void *(__cdecl *)(long),void(__cdecl *)(void *))
??0strstreambuf@@QAE@P6APAXJ@ZP6AXPAX@Z@Z ; has WINAPI (@8)
; public: __thiscall strstreambuf::strstreambuf(char *,int,char *)
??0strstreambuf@@QAE@PADH0@Z ; has WINAPI (@12)
; public: __thiscall strstreambuf::strstreambuf(void)
??0strstreambuf@@QAE@XZ
; public: __thiscall Iostream_init::~Iostream_init(void)
??1Iostream_init@@QAE@XZ
; public: virtual __thiscall filebuf::~filebuf(void)
??1filebuf@@UAE@XZ
; public: virtual __thiscall fstream::~fstream(void)
??1fstream@@UAE@XZ
; public: virtual __thiscall ifstream::~ifstream(void)
??1ifstream@@UAE@XZ
; public: virtual __thiscall ios::~ios(void)
??1ios@@UAE@XZ
; public: virtual __thiscall iostream::~iostream(void)
??1iostream@@UAE@XZ
; public: virtual __thiscall istream::~istream(void)
??1istream@@UAE@XZ
; public: virtual __thiscall istream_withassign::~istream_withassign(void)
??1istream_withassign@@UAE@XZ
; public: virtual __thiscall istrstream::~istrstream(void)
??1istrstream@@UAE@XZ
; public: virtual __thiscall ofstream::~ofstream(void)
??1ofstream@@UAE@XZ
; public: virtual __thiscall ostream::~ostream(void)
??1ostream@@UAE@XZ
; public: virtual __thiscall ostream_withassign::~ostream_withassign(void)
??1ostream_withassign@@UAE@XZ
; public: virtual __thiscall ostrstream::~ostrstream(void)
??1ostrstream@@UAE@XZ
; public: virtual __thiscall stdiobuf::~stdiobuf(void)
??1stdiobuf@@UAE@XZ
; public: virtual __thiscall stdiostream::~stdiostream(void)
??1stdiostream@@UAE@XZ
; public: virtual __thiscall streambuf::~streambuf(void)
??1streambuf@@UAE@XZ
; public: virtual __thiscall strstream::~strstream(void)
??1strstream@@UAE@XZ
; public: virtual __thiscall strstreambuf::~strstreambuf(void)
??1strstreambuf@@UAE@XZ
; void *__cdecl operator new(unsigned int)
??2@YAPAXI@Z
; void __cdecl operator delete(void *)
??3@YAXPAX@Z
; public: class Iostream_init &__thiscall Iostream_init::operator =(class Iostream_init const &)
??4Iostream_init@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class filebuf &__thiscall filebuf::operator =(class filebuf const &)
??4filebuf@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class fstream &__thiscall fstream::operator =(class fstream &)
??4fstream@@QAEAAV0@AAV0@@Z ; has WINAPI (@4)
; public: class ifstream &__thiscall ifstream::operator =(class ifstream const &)
??4ifstream@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class ios &__thiscall ios::operator =(class ios const &)
??4ios@@IAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class iostream &__thiscall iostream::operator =(class iostream &)
??4iostream@@IAEAAV0@AAV0@@Z ; has WINAPI (@4)
; protected: class iostream &__thiscall iostream::operator =(class streambuf *)
??4iostream@@IAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; protected: class istream &__thiscall istream::operator =(class istream const &)
??4istream@@IAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class istream &__thiscall istream::operator =(class streambuf *)
??4istream@@IAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class istream_withassign &__thiscall istream_withassign::operator =(class istream_withassign const &)
??4istream_withassign@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream_withassign::operator =(class istream const &)
??4istream_withassign@@QAEAAVistream@@ABV1@@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream_withassign::operator =(class streambuf *)
??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class istrstream &__thiscall istrstream::operator =(class istrstream const &)
??4istrstream@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class ofstream &__thiscall ofstream::operator =(class ofstream const &)
??4ofstream@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class ostream &__thiscall ostream::operator =(class ostream const &)
??4ostream@@IAEAAV0@ABV0@@Z ; has WINAPI (@4)
; protected: class ostream &__thiscall ostream::operator =(class streambuf *)
??4ostream@@IAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class ostream_withassign &__thiscall ostream_withassign::operator =(class ostream_withassign const &)
??4ostream_withassign@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream_withassign::operator =(class ostream const &)
??4ostream_withassign@@QAEAAVostream@@ABV1@@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream_withassign::operator =(class streambuf *)
??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class ostrstream &__thiscall ostrstream::operator =(class ostrstream const &)
??4ostrstream@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class stdiobuf &__thiscall stdiobuf::operator =(class stdiobuf const &)
??4stdiobuf@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class stdiostream &__thiscall stdiostream::operator =(class stdiostream &)
??4stdiostream@@QAEAAV0@AAV0@@Z ; has WINAPI (@4)
; public: class streambuf &__thiscall streambuf::operator =(class streambuf const &)
??4streambuf@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class strstream &__thiscall strstream::operator =(class strstream &)
??4strstream@@QAEAAV0@AAV0@@Z ; has WINAPI (@4)
; public: class strstreambuf &__thiscall strstreambuf::operator =(class strstreambuf const &)
??4strstreambuf@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(signed char &)
??5istream@@QAEAAV0@AAC@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(char &)
??5istream@@QAEAAV0@AAD@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned char &)
??5istream@@QAEAAV0@AAE@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(short &)
??5istream@@QAEAAV0@AAF@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned short &)
??5istream@@QAEAAV0@AAG@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(int &)
??5istream@@QAEAAV0@AAH@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned int &)
??5istream@@QAEAAV0@AAI@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(long &)
??5istream@@QAEAAV0@AAJ@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned long &)
??5istream@@QAEAAV0@AAK@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(float &)
??5istream@@QAEAAV0@AAM@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(double &)
??5istream@@QAEAAV0@AAN@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(long double &)
??5istream@@QAEAAV0@AAO@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(class istream &(__cdecl *)(class istream &))
??5istream@@QAEAAV0@P6AAAV0@AAV0@@Z@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(class ios &(__cdecl *)(class ios &))
??5istream@@QAEAAV0@P6AAAVios@@AAV1@@Z@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(signed char *)
??5istream@@QAEAAV0@PAC@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(char *)
??5istream@@QAEAAV0@PAD@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(unsigned char *)
??5istream@@QAEAAV0@PAE@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::operator >>(class streambuf *)
??5istream@@QAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(signed char)
??6ostream@@QAEAAV0@C@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(char)
??6ostream@@QAEAAV0@D@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned char)
??6ostream@@QAEAAV0@E@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(short)
??6ostream@@QAEAAV0@F@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned short)
??6ostream@@QAEAAV0@G@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(int)
??6ostream@@QAEAAV0@H@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned int)
??6ostream@@QAEAAV0@I@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(long)
??6ostream@@QAEAAV0@J@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned long)
??6ostream@@QAEAAV0@K@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(float)
??6ostream@@QAEAAV0@M@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(double)
??6ostream@@QAEAAV0@N@Z ; has WINAPI (@8)
; public: class ostream &__thiscall ostream::operator <<(long double)
??6ostream@@QAEAAV0@O@Z ; has WINAPI (@8)
; public: class ostream &__thiscall ostream::operator <<(class ostream &(__cdecl *)(class ostream &))
??6ostream@@QAEAAV0@P6AAAV0@AAV0@@Z@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(class ios &(__cdecl *)(class ios &))
??6ostream@@QAEAAV0@P6AAAVios@@AAV1@@Z@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(class streambuf *)
??6ostream@@QAEAAV0@PAVstreambuf@@@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(signed char const *)
??6ostream@@QAEAAV0@PBC@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(char const *)
??6ostream@@QAEAAV0@PBD@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(unsigned char const *)
??6ostream@@QAEAAV0@PBE@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::operator <<(void const *)
??6ostream@@QAEAAV0@PBX@Z ; has WINAPI (@4)
; public: int __thiscall ios::operator !(void)const 
??7ios@@QBEHXZ
; public: void __cdecl ios::operator void *(...)const throw()
??Bios@@QBAPAXXZ
; const filebuf::$vftable
??_7filebuf@@6B@ DATA
; const fstream::$vftable
??_7fstream@@6B@ DATA
; const ifstream::$vftable
??_7ifstream@@6B@ DATA
; const ios::$vftable
??_7ios@@6B@ DATA
; const iostream::$vftable
??_7iostream@@6B@ DATA
; const istream::$vftable
??_7istream@@6B@ DATA
; const istream_withassign::$vftable
??_7istream_withassign@@6B@ DATA
; const istrstream::$vftable
??_7istrstream@@6B@ DATA
; const ofstream::$vftable
??_7ofstream@@6B@ DATA
; const ostream::$vftable
??_7ostream@@6B@ DATA
; const ostream_withassign::$vftable
??_7ostream_withassign@@6B@ DATA
; const ostrstream::$vftable
??_7ostrstream@@6B@ DATA
; const stdiobuf::$vftable
??_7stdiobuf@@6B@ DATA
; const stdiostream::$vftable
??_7stdiostream@@6B@ DATA
; const streambuf::$vftable
??_7streambuf@@6B@ DATA
; const strstream::$vftable
??_7strstream@@6B@ DATA
; const strstreambuf::$vftable
??_7strstreambuf@@6B@ DATA
; const fstream::$vbtable {for 'istream' }
??_8fstream@@7Bistream@@@ DATA
; const fstream::$vbtable {for 'ostream' }
??_8fstream@@7Bostream@@@ DATA
; const ifstream::$vbtable
??_8ifstream@@7B@ DATA
; const iostream::$vbtable {for 'istream' }
??_8iostream@@7Bistream@@@ DATA
; const iostream::$vbtable {for 'ostream' }
??_8iostream@@7Bostream@@@ DATA
; const istream::$vbtable
??_8istream@@7B@ DATA
; const istream_withassign::$vbtable
??_8istream_withassign@@7B@ DATA
; const istrstream::$vbtable
??_8istrstream@@7B@ DATA
; const ofstream::$vbtable
??_8ofstream@@7B@ DATA
; const ostream::$vbtable
??_8ostream@@7B@ DATA
; const ostream_withassign::$vbtable
??_8ostream_withassign@@7B@ DATA
; const ostrstream::$vbtable
??_8ostrstream@@7B@ DATA
; const stdiostream::$vbtable {for 'istream' }
??_8stdiostream@@7Bistream@@@ DATA
; const stdiostream::$vbtable {for 'ostream' }
??_8stdiostream@@7Bostream@@@ DATA
; const strstream::$vbtable {for 'istream' }
??_8strstream@@7Bistream@@@ DATA
; const strstream::$vbtable {for 'ostream' }
??_8strstream@@7Bostream@@@ DATA
; public: void __thiscall fstream::vbase_destructor(void)
??_Dfstream@@QAEXXZ
; public: void __thiscall ifstream::vbase_destructor(void)
??_Difstream@@QAEXXZ
; public: void __thiscall iostream::vbase_destructor(void)
??_Diostream@@QAEXXZ
; public: void __thiscall istream::vbase_destructor(void)
??_Distream@@QAEXXZ
; public: void __thiscall istream_withassign::vbase_destructor(void)
??_Distream_withassign@@QAEXXZ
; public: void __thiscall istrstream::vbase_destructor(void)
??_Distrstream@@QAEXXZ
; public: void __thiscall ofstream::vbase_destructor(void)
??_Dofstream@@QAEXXZ
; public: void __thiscall ostream::vbase_destructor(void)
??_Dostream@@QAEXXZ
; public: void __thiscall ostream_withassign::vbase_destructor(void)
??_Dostream_withassign@@QAEXXZ
; public: void __thiscall ostrstream::vbase_destructor(void)
??_Dostrstream@@QAEXXZ
; public: void __thiscall stdiostream::vbase_destructor(void)
??_Dstdiostream@@QAEXXZ
; public: void __thiscall strstream::vbase_destructor(void)
??_Dstrstream@@QAEXXZ
; public: void *__thiscall Iostream_init::__vecDelDtor(unsigned int)
??_EIostream_init@@QAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall filebuf::__vecDelDtor(unsigned int)
??_Efilebuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall fstream::__vecDelDtor(unsigned int)
??_Efstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ifstream::__vecDelDtor(unsigned int)
??_Eifstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ios::__vecDelDtor(unsigned int)
??_Eios@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall iostream::__vecDelDtor(unsigned int)
??_Eiostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istream::__vecDelDtor(unsigned int)
??_Eistream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istream_withassign::__vecDelDtor(unsigned int)
??_Eistream_withassign@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istrstream::__vecDelDtor(unsigned int)
??_Eistrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ofstream::__vecDelDtor(unsigned int)
??_Eofstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostream::__vecDelDtor(unsigned int)
??_Eostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostream_withassign::__vecDelDtor(unsigned int)
??_Eostream_withassign@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostrstream::__vecDelDtor(unsigned int)
??_Eostrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall stdiobuf::__vecDelDtor(unsigned int)
??_Estdiobuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall stdiostream::__vecDelDtor(unsigned int)
??_Estdiostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall streambuf::__vecDelDtor(unsigned int)
??_Estreambuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall strstream::__vecDelDtor(unsigned int)
??_Estrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall strstreambuf::__vecDelDtor(unsigned int)
??_Estrstreambuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: void *__thiscall Iostream_init::__delDtor(unsigned int)
??_GIostream_init@@QAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall filebuf::__delDtor(unsigned int)
??_Gfilebuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall fstream::__delDtor(unsigned int)
??_Gfstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ifstream::__delDtor(unsigned int)
??_Gifstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ios::__delDtor(unsigned int)
??_Gios@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall iostream::__delDtor(unsigned int)
??_Giostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istream::__delDtor(unsigned int)
??_Gistream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istream_withassign::__delDtor(unsigned int)
??_Gistream_withassign@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall istrstream::__delDtor(unsigned int)
??_Gistrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ofstream::__delDtor(unsigned int)
??_Gofstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostream::__delDtor(unsigned int)
??_Gostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostream_withassign::__delDtor(unsigned int)
??_Gostream_withassign@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall ostrstream::__delDtor(unsigned int)
??_Gostrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall stdiobuf::__delDtor(unsigned int)
??_Gstdiobuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall stdiostream::__delDtor(unsigned int)
??_Gstdiostream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall streambuf::__delDtor(unsigned int)
??_Gstreambuf@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall strstream::__delDtor(unsigned int)
??_Gstrstream@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall strstreambuf::__delDtor(unsigned int)
??_Gstrstreambuf@@UAEPAXI@Z ; has WINAPI (@4)
; int(__cdecl *)(unsigned int)__cdecl _set_new_handler(int(__cdecl *)(unsigned int))
?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z
; public: static long const ios::adjustfield
?adjustfield@ios@@2JB DATA
; protected: int __thiscall streambuf::allocate(void)
?allocate@streambuf@@IAEHXZ
; public: class filebuf *__thiscall filebuf::attach(int)
?attach@filebuf@@QAEPAV1@H@Z ; has WINAPI (@4)
; public: void __thiscall fstream::attach(int)
?attach@fstream@@QAEXH@Z ; has WINAPI (@4)
; public: void __thiscall ifstream::attach(int)
?attach@ifstream@@QAEXH@Z ; has WINAPI (@4)
; public: void __thiscall ofstream::attach(int)
?attach@ofstream@@QAEXH@Z ; has WINAPI (@4)
; public: int __thiscall ios::bad(void)const 
?bad@ios@@QBEHXZ
; protected: char *__thiscall streambuf::base(void)const 
?base@streambuf@@IBEPADXZ
; public: static long const ios::basefield
?basefield@ios@@2JB DATA
; public: static int const filebuf::binary
?binary@filebuf@@2HB DATA
; public: static long __cdecl ios::bitalloc(void)
?bitalloc@ios@@SAJXZ
; protected: int __thiscall streambuf::blen(void)const 
?blen@streambuf@@IBEHXZ
; class ostream_withassign cerr
?cerr@@3Vostream_withassign@@A DATA
; class istream_withassign cin
?cin@@3Vistream_withassign@@A DATA
; public: void __thiscall ios::clear(int)
?clear@ios@@QAEXH@Z ; has WINAPI (@4)
; class ostream_withassign clog
?clog@@3Vostream_withassign@@A DATA
; public: class filebuf *__thiscall filebuf::close(void)
?close@filebuf@@QAEPAV1@XZ
; public: void __thiscall fstream::close(void)
?close@fstream@@QAEXXZ
; public: void __thiscall ifstream::close(void)
?close@ifstream@@QAEXXZ
; public: void __thiscall ofstream::close(void)
?close@ofstream@@QAEXXZ
; public: void __thiscall ios::clrlock(void)
?clrlock@ios@@QAEXXZ
; public: void __thiscall streambuf::clrlock(void)
?clrlock@streambuf@@QAEXXZ
; class ostream_withassign cout
?cout@@3Vostream_withassign@@A DATA
; public: void __thiscall streambuf::dbp(void)
?dbp@streambuf@@QAEXXZ
; class ios &__cdecl dec(class ios &)
?dec@@YAAAVios@@AAV1@@Z
; public: void __thiscall ios::delbuf(int)
?delbuf@ios@@QAEXH@Z ; has WINAPI (@4)
; public: int __thiscall ios::delbuf(void)const 
?delbuf@ios@@QBEHXZ
; protected: virtual int __thiscall streambuf::doallocate(void)
?doallocate@streambuf@@MAEHXZ
; protected: virtual int __thiscall strstreambuf::doallocate(void)
?doallocate@strstreambuf@@MAEHXZ
; public: void __thiscall istream::eatwhite(void)
?eatwhite@istream@@QAEXXZ
; protected: char *__thiscall streambuf::eback(void)const 
?eback@streambuf@@IBEPADXZ
; protected: char *__thiscall streambuf::ebuf(void)const 
?ebuf@streambuf@@IBEPADXZ
; protected: char *__thiscall streambuf::egptr(void)const 
?egptr@streambuf@@IBEPADXZ
; class ostream &__cdecl endl(class ostream &)
?endl@@YAAAVostream@@AAV1@@Z
; class ostream &__cdecl ends(class ostream &)
?ends@@YAAAVostream@@AAV1@@Z
; public: int __thiscall ios::eof(void)const 
?eof@ios@@QBEHXZ
; protected: char *__thiscall streambuf::epptr(void)const 
?epptr@streambuf@@IBEPADXZ
; private: static int ios::fLockcInit
?fLockcInit@ios@@0HA DATA
; public: int __thiscall ios::fail(void)const 
?fail@ios@@QBEHXZ
; public: int __thiscall filebuf::fd(void)const 
?fd@filebuf@@QBEHXZ
; public: int __thiscall fstream::fd(void)const 
?fd@fstream@@QBEHXZ
; public: int __thiscall ifstream::fd(void)const 
?fd@ifstream@@QBEHXZ
; public: int __thiscall ofstream::fd(void)const 
?fd@ofstream@@QBEHXZ
; public: char __thiscall ios::fill(char)
?fill@ios@@QAEDD@Z ; has WINAPI (@4)
; public: char __thiscall ios::fill(void)const 
?fill@ios@@QBEDXZ
; public: long __thiscall ios::flags(long)
?flags@ios@@QAEJJ@Z ; has WINAPI (@4)
; public: long __thiscall ios::flags(void)const 
?flags@ios@@QBEJXZ
; public: static long const ios::floatfield
?floatfield@ios@@2JB DATA
; class ostream &__cdecl flush(class ostream &)
?flush@@YAAAVostream@@AAV1@@Z
; public: class ostream &__thiscall ostream::flush(void)
?flush@ostream@@QAEAAV1@XZ
; public: void __thiscall strstreambuf::freeze(int)
?freeze@strstreambuf@@QAEXH@Z ; has WINAPI (@4)
; protected: void __thiscall streambuf::gbump(int)
?gbump@streambuf@@IAEXH@Z ; has WINAPI (@4)
; public: int __thiscall istream::gcount(void)const 
?gcount@istream@@QBEHXZ
; public: class istream &__thiscall istream::get(signed char &)
?get@istream@@QAEAAV1@AAC@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::get(char &)
?get@istream@@QAEAAV1@AAD@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::get(unsigned char &)
?get@istream@@QAEAAV1@AAE@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::get(class streambuf &,char)
?get@istream@@QAEAAV1@AAVstreambuf@@D@Z ; has WINAPI (@8)
; public: class istream &__thiscall istream::get(signed char *,int,char)
?get@istream@@QAEAAV1@PACHD@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::get(char *,int,char)
?get@istream@@QAEAAV1@PADHD@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::get(unsigned char *,int,char)
?get@istream@@QAEAAV1@PAEHD@Z ; has WINAPI (@12)
; public: int __thiscall istream::get(void)
?get@istream@@QAEHXZ
; private: int __thiscall istream::getdouble(char *,int)
?getdouble@istream@@AAEHPADH@Z ; has WINAPI (@8)
; private: int __thiscall istream::getint(char *)
?getint@istream@@AAEHPAD@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::getline(signed char *,int,char)
?getline@istream@@QAEAAV1@PACHD@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::getline(char *,int,char)
?getline@istream@@QAEAAV1@PADHD@Z ; has WINAPI (@12)
; public: class istream &__thiscall istream::getline(unsigned char *,int,char)
?getline@istream@@QAEAAV1@PAEHD@Z ; has WINAPI (@12)
; public: int __thiscall ios::good(void)const 
?good@ios@@QBEHXZ
; protected: char *__thiscall streambuf::gptr(void)const 
?gptr@streambuf@@IBEPADXZ
; class ios &__cdecl hex(class ios &)
?hex@@YAAAVios@@AAV1@@Z
; public: class istream &__thiscall istream::ignore(int,int)
?ignore@istream@@QAEAAV1@HH@Z ; has WINAPI (@8)
; public: int __thiscall streambuf::in_avail(void)const 
?in_avail@streambuf@@QBEHXZ
; protected: void __thiscall ios::init(class streambuf *)
?init@ios@@IAEXPAVstreambuf@@@Z ; has WINAPI (@4)
; public: int __thiscall istream::ipfx(int)
?ipfx@istream@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall filebuf::is_open(void)const 
?is_open@filebuf@@QBEHXZ
; public: int __thiscall fstream::is_open(void)const 
?is_open@fstream@@QBEHXZ
; public: int __thiscall ifstream::is_open(void)const 
?is_open@ifstream@@QBEHXZ
; public: int __thiscall ofstream::is_open(void)const 
?is_open@ofstream@@QBEHXZ
; public: void __thiscall istream::isfx(void)
?isfx@istream@@QAEXXZ
; public: long &__thiscall ios::iword(int)const 
?iword@ios@@QBEAAJH@Z ; has WINAPI (@4)
; public: void __thiscall ios::lock(void)
?lock@ios@@QAEXXZ
; public: void __thiscall streambuf::lock(void)
?lock@streambuf@@QAEXXZ
; public: void __thiscall ios::lockbuf(void)
?lockbuf@ios@@QAEXXZ
; protected: static void __cdecl ios::lockc(void)
?lockc@ios@@KAXXZ
; protected: struct _RTL_CRITICAL_SECTION *__thiscall ios::lockptr(void)
?lockptr@ios@@IAEPAU_RTL_CRITICAL_SECTION@@XZ
; protected: struct _RTL_CRITICAL_SECTION *__thiscall streambuf::lockptr(void)
?lockptr@streambuf@@IAEPAU_RTL_CRITICAL_SECTION@@XZ
; class ios &__cdecl oct(class ios &)
?oct@@YAAAVios@@AAV1@@Z
; public: class filebuf *__thiscall filebuf::open(char const *,int,int)
?open@filebuf@@QAEPAV1@PBDHH@Z ; has WINAPI (@12)
; public: void __thiscall fstream::open(char const *,int,int)
?open@fstream@@QAEXPBDHH@Z ; has WINAPI (@12)
; public: void __thiscall ifstream::open(char const *,int,int)
?open@ifstream@@QAEXPBDHH@Z ; has WINAPI (@12)
; public: void __thiscall ofstream::open(char const *,int,int)
?open@ofstream@@QAEXPBDHH@Z ; has WINAPI (@12)
; public: static int const filebuf::openprot
?openprot@filebuf@@2HB DATA
; public: int __thiscall ostream::opfx(void)
?opfx@ostream@@QAEHXZ
; public: void __thiscall ostream::osfx(void)
?osfx@ostream@@QAEXXZ
; public: int __thiscall streambuf::out_waiting(void)const 
?out_waiting@streambuf@@QBEHXZ
; public: virtual int __thiscall filebuf::overflow(int)
?overflow@filebuf@@UAEHH@Z ; has WINAPI (@4)
; public: virtual int __thiscall stdiobuf::overflow(int)
?overflow@stdiobuf@@UAEHH@Z ; has WINAPI (@4)
; public: virtual int __thiscall strstreambuf::overflow(int)
?overflow@strstreambuf@@UAEHH@Z ; has WINAPI (@4)
; public: virtual int __thiscall stdiobuf::pbackfail(int)
?pbackfail@stdiobuf@@UAEHH@Z ; has WINAPI (@4)
; public: virtual int __thiscall streambuf::pbackfail(int)
?pbackfail@streambuf@@UAEHH@Z ; has WINAPI (@4)
; protected: char *__thiscall streambuf::pbase(void)const 
?pbase@streambuf@@IBEPADXZ
; protected: void __thiscall streambuf::pbump(int)
?pbump@streambuf@@IAEXH@Z ; has WINAPI (@4)
; public: int __thiscall ostrstream::pcount(void)const 
?pcount@ostrstream@@QBEHXZ
; public: int __thiscall strstream::pcount(void)const 
?pcount@strstream@@QBEHXZ
; public: int __thiscall istream::peek(void)
?peek@istream@@QAEHXZ
; protected: char *__thiscall streambuf::pptr(void)const 
?pptr@streambuf@@IBEPADXZ
; public: int __thiscall ios::precision(int)
?precision@ios@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall ios::precision(void)const 
?precision@ios@@QBEHXZ
; public: class ostream &__thiscall ostream::put(signed char)
?put@ostream@@QAEAAV1@C@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::put(char)
?put@ostream@@QAEAAV1@D@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::put(unsigned char)
?put@ostream@@QAEAAV1@E@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::putback(char)
?putback@istream@@QAEAAV1@D@Z ; has WINAPI (@4)
; public: void *&__thiscall ios::pword(int)const 
?pword@ios@@QBEAAPAXH@Z ; has WINAPI (@4)
; public: class filebuf *__thiscall fstream::rdbuf(void)const 
?rdbuf@fstream@@QBEPAVfilebuf@@XZ
; public: class filebuf *__thiscall ifstream::rdbuf(void)const 
?rdbuf@ifstream@@QBEPAVfilebuf@@XZ
; public: class streambuf *__thiscall ios::rdbuf(void)const 
?rdbuf@ios@@QBEPAVstreambuf@@XZ
; public: class strstreambuf *__thiscall istrstream::rdbuf(void)const 
?rdbuf@istrstream@@QBEPAVstrstreambuf@@XZ
; public: class filebuf *__thiscall ofstream::rdbuf(void)const 
?rdbuf@ofstream@@QBEPAVfilebuf@@XZ
; public: class strstreambuf *__thiscall ostrstream::rdbuf(void)const 
?rdbuf@ostrstream@@QBEPAVstrstreambuf@@XZ
; public: class stdiobuf *__thiscall stdiostream::rdbuf(void)const 
?rdbuf@stdiostream@@QBEPAVstdiobuf@@XZ
; public: class strstreambuf *__thiscall strstream::rdbuf(void)const 
?rdbuf@strstream@@QBEPAVstrstreambuf@@XZ
; public: int __thiscall ios::rdstate(void)const 
?rdstate@ios@@QBEHXZ
; public: class istream &__thiscall istream::read(signed char *,int)
?read@istream@@QAEAAV1@PACH@Z ; has WINAPI (@8)
; public: class istream &__thiscall istream::read(char *,int)
?read@istream@@QAEAAV1@PADH@Z ; has WINAPI (@8)
; public: class istream &__thiscall istream::read(unsigned char *,int)
?read@istream@@QAEAAV1@PAEH@Z ; has WINAPI (@8)
; public: int __thiscall streambuf::sbumpc(void)
?sbumpc@streambuf@@QAEHXZ
; public: class istream &__thiscall istream::seekg(long)
?seekg@istream@@QAEAAV1@J@Z ; has WINAPI (@4)
; public: class istream &__thiscall istream::seekg(long,enum ios::seek_dir)
?seekg@istream@@QAEAAV1@JW4seek_dir@ios@@@Z ; has WINAPI (@8)
; public: virtual long __thiscall filebuf::seekoff(long,enum ios::seek_dir,int)
?seekoff@filebuf@@UAEJJW4seek_dir@ios@@H@Z ; has WINAPI (@12)
; public: virtual long __thiscall stdiobuf::seekoff(long,enum ios::seek_dir,int)
?seekoff@stdiobuf@@UAEJJW4seek_dir@ios@@H@Z ; has WINAPI (@12)
; public: virtual long __thiscall streambuf::seekoff(long,enum ios::seek_dir,int)
?seekoff@streambuf@@UAEJJW4seek_dir@ios@@H@Z ; has WINAPI (@12)
; public: virtual long __thiscall strstreambuf::seekoff(long,enum ios::seek_dir,int)
?seekoff@strstreambuf@@UAEJJW4seek_dir@ios@@H@Z ; has WINAPI (@12)
; public: class ostream &__thiscall ostream::seekp(long)
?seekp@ostream@@QAEAAV1@J@Z ; has WINAPI (@4)
; public: class ostream &__thiscall ostream::seekp(long,enum ios::seek_dir)
?seekp@ostream@@QAEAAV1@JW4seek_dir@ios@@@Z ; has WINAPI (@8)
; public: virtual long __thiscall streambuf::seekpos(long,int)
?seekpos@streambuf@@UAEJJH@Z ; has WINAPI (@8)
; protected: void __thiscall streambuf::setb(char *,char *,int)
?setb@streambuf@@IAEXPAD0H@Z ; has WINAPI (@12)
; public: virtual class streambuf *__thiscall filebuf::setbuf(char *,int)
?setbuf@filebuf@@UAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: class streambuf *__thiscall fstream::setbuf(char *,int)
?setbuf@fstream@@QAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: class streambuf *__thiscall ifstream::setbuf(char *,int)
?setbuf@ifstream@@QAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: class streambuf *__thiscall ofstream::setbuf(char *,int)
?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: virtual class streambuf *__thiscall streambuf::setbuf(char *,int)
?setbuf@streambuf@@UAEPAV1@PADH@Z ; has WINAPI (@8)
; public: virtual class streambuf *__thiscall strstreambuf::setbuf(char *,int)
?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z ; has WINAPI (@8)
; public: long __thiscall ios::setf(long)
?setf@ios@@QAEJJ@Z ; has WINAPI (@4)
; public: long __thiscall ios::setf(long,long)
?setf@ios@@QAEJJJ@Z ; has WINAPI (@8)
; protected: void __thiscall streambuf::setg(char *,char *,char *)
?setg@streambuf@@IAEXPAD00@Z ; has WINAPI (@12)
; public: void __thiscall ios::setlock(void)
?setlock@ios@@QAEXXZ
; public: void __thiscall streambuf::setlock(void)
?setlock@streambuf@@QAEXXZ
; public: int __thiscall filebuf::setmode(int)
?setmode@filebuf@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall fstream::setmode(int)
?setmode@fstream@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall ifstream::setmode(int)
?setmode@ifstream@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall ofstream::setmode(int)
?setmode@ofstream@@QAEHH@Z ; has WINAPI (@4)
; protected: void __thiscall streambuf::setp(char *,char *)
?setp@streambuf@@IAEXPAD0@Z ; has WINAPI (@8)
; public: int __thiscall stdiobuf::setrwbuf(int,int)
?setrwbuf@stdiobuf@@QAEHHH@Z ; has WINAPI (@8)
; public: int __thiscall streambuf::sgetc(void)
?sgetc@streambuf@@QAEHXZ
; public: int __thiscall streambuf::sgetn(char *,int)
?sgetn@streambuf@@QAEHPADH@Z ; has WINAPI (@8)
; public: static int const filebuf::sh_none
?sh_none@filebuf@@2HB DATA
; public: static int const filebuf::sh_read
?sh_read@filebuf@@2HB DATA
; public: static int const filebuf::sh_write
?sh_write@filebuf@@2HB DATA
; public: int __thiscall streambuf::snextc(void)
?snextc@streambuf@@QAEHXZ
; public: int __thiscall streambuf::sputbackc(char)
?sputbackc@streambuf@@QAEHD@Z ; has WINAPI (@4)
; public: int __thiscall streambuf::sputc(int)
?sputc@streambuf@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall streambuf::sputn(char const *,int)
?sputn@streambuf@@QAEHPBDH@Z ; has WINAPI (@8)
; public: struct _iobuf *__thiscall stdiobuf::stdiofile(void)
?stdiofile@stdiobuf@@QAEPAU_iobuf@@XZ
; public: void __thiscall streambuf::stossc(void)
?stossc@streambuf@@QAEXXZ
; public: char *__thiscall istrstream::str(void)
?str@istrstream@@QAEPADXZ
; public: char *__thiscall ostrstream::str(void)
?str@ostrstream@@QAEPADXZ
; public: char *__thiscall strstream::str(void)
?str@strstream@@QAEPADXZ
; public: char *__thiscall strstreambuf::str(void)
?str@strstreambuf@@QAEPADXZ
; private: static int ios::sunk_with_stdio
?sunk_with_stdio@ios@@0HA DATA
; public: virtual int __thiscall filebuf::sync(void)
?sync@filebuf@@UAEHXZ
; public: int __thiscall istream::sync(void)
?sync@istream@@QAEHXZ
; public: virtual int __thiscall stdiobuf::sync(void)
?sync@stdiobuf@@UAEHXZ
; public: virtual int __thiscall streambuf::sync(void)
?sync@streambuf@@UAEHXZ
; public: virtual int __thiscall strstreambuf::sync(void)
?sync@strstreambuf@@UAEHXZ
; public: static void __cdecl ios::sync_with_stdio(void)
?sync_with_stdio@ios@@SAXXZ
; public: long __thiscall istream::tellg(void)
?tellg@istream@@QAEJXZ
; public: long __thiscall ostream::tellp(void)
?tellp@ostream@@QAEJXZ
; public: static int const filebuf::text
?text@filebuf@@2HB DATA
; public: class ostream *__thiscall ios::tie(class ostream *)
?tie@ios@@QAEPAVostream@@PAV2@@Z ; has WINAPI (@4)
; public: class ostream *__thiscall ios::tie(void)const 
?tie@ios@@QBEPAVostream@@XZ
; protected: void __thiscall streambuf::unbuffered(int)
?unbuffered@streambuf@@IAEXH@Z ; has WINAPI (@4)
; protected: int __thiscall streambuf::unbuffered(void)const 
?unbuffered@streambuf@@IBEHXZ
; public: virtual int __thiscall filebuf::underflow(void)
?underflow@filebuf@@UAEHXZ
; public: virtual int __thiscall stdiobuf::underflow(void)
?underflow@stdiobuf@@UAEHXZ
; public: virtual int __thiscall strstreambuf::underflow(void)
?underflow@strstreambuf@@UAEHXZ
; public: void __thiscall ios::unlock(void)
?unlock@ios@@QAEXXZ
; public: void __thiscall streambuf::unlock(void)
?unlock@streambuf@@QAEXXZ
; public: void __thiscall ios::unlockbuf(void)
?unlockbuf@ios@@QAEXXZ
; protected: static void __cdecl ios::unlockc(void)
?unlockc@ios@@KAXXZ
; public: long __thiscall ios::unsetf(long)
?unsetf@ios@@QAEJJ@Z ; has WINAPI (@4)
; public: int __thiscall ios::width(int)
?width@ios@@QAEHH@Z ; has WINAPI (@4)
; public: int __thiscall ios::width(void)const 
?width@ios@@QBEHXZ
; public: class ostream &__thiscall ostream::write(signed char const *,int)
?write@ostream@@QAEAAV1@PBCH@Z ; has WINAPI (@8)
; public: class ostream &__thiscall ostream::write(char const *,int)
?write@ostream@@QAEAAV1@PBDH@Z ; has WINAPI (@8)
; public: class ostream &__thiscall ostream::write(unsigned char const *,int)
?write@ostream@@QAEAAV1@PBEH@Z ; has WINAPI (@8)
; private: class ostream &__thiscall ostream::writepad(char const *,char const *)
?writepad@ostream@@AAEAAV1@PBD0@Z ; has WINAPI (@8)
; class istream &__cdecl ws(class istream &)
?ws@@YAAAVistream@@AAV1@@Z
; private: static int ios::x_curindex
?x_curindex@ios@@0HA DATA
; private: static struct _RTL_CRITICAL_SECTION ios::x_lockc
?x_lockc@ios@@0U_RTL_CRITICAL_SECTION@@A DATA
; private: static long ios::x_maxbit
?x_maxbit@ios@@0JA DATA
; private: static long *const ios::x_statebuf
?x_statebuf@ios@@0QAJA DATA
; public: static int __cdecl ios::xalloc(void)
?xalloc@ios@@SAHXZ
; public: virtual int __thiscall streambuf::xsgetn(char *,int)
?xsgetn@streambuf@@UAEHPADH@Z ; has WINAPI (@8)
; public: virtual int __thiscall streambuf::xsputn(char const *,int)
?xsputn@streambuf@@UAEHPBDH@Z ; has WINAPI (@8)
$I10_OUTPUT
_CIacos
_CIasin
_CIatan
_CIatan2
_CIcos
_CIcosh
_CIexp
_CIfmod
_CIlog
_CIlog10
_CIpow
_CIsin
_CIsinh
_CIsqrt
_CItan
_CItanh
_HUGE DATA
_XcptFilter
__STRINGTOLD
__argc DATA
__argv DATA
__dllonexit
__doserrno
__fpecode
__GetMainArgs == __getmainargs ; msvcrt10.dll's __getmainargs has same API as crtdll.dll's __GetMainArgs, real __getmainargs provided by emu
__isascii
__iscsym
__iscsymf
__mb_cur_max DATA
__pxcptinfoptrs
__threadhandle
__threadid
__toascii
_abnormal_termination
_access
_acmdln DATA
_aexit_rtn DATA
_amsg_exit
_assert
_beginthread
_c_exit
_cabs
_cexit
_cgets
_chdir
_chdrive
_chgsign
_chmod
_chsize
_clearfp
_close
_commit
_commode DATA
_control87
_controlfp
_copysign
_cprintf
_cputs
_creat
_cscanf
_ctype DATA
_cwait
_daylight DATA
_dup
_dup2
_ecvt
_endthread
_environ DATA
_eof
_errno
_except_handler2
_execl
_execle
_execlp
_execlpe
_execv
_execve
_execvp
_execvpe
_exit
_expand
_fcloseall
_fcvt
_fdopen
_fgetchar
_fgetwchar
_filbuf
_fileinfo DATA
_filelength
_fileno
_findclose
_findfirst
_findnext
_finite
_flsbuf
_flushall
_fmode DATA
_fpclass
_fpieee_flt
_fpreset
_fputchar
_fputwchar
_fsopen
_fstat
_ftime
_ftol
_fullpath
_futime
_gcvt
_get_osfhandle
_getch
_getche
_getcwd
_getdcwd
_getdiskfree
_getdrive
_getdrives
_getpid
_getw
_global_unwind2
_heapadd
_heapchk
_heapmin
_heapset
_heapwalk
_hypot
_initterm
_iob DATA
_isatty
_isctype
_isnan
_itoa
_j0
_j1
_jn
_kbhit
_lconv_init
_lfind
_local_unwind2
_locking
_logb
_lrotl
_lrotr
_lsearch
_lseek
_ltoa
_makepath
_matherr
_mbstrlen
_memccpy
_memicmp
_mkdir
_mktemp
_msize
_mtlock
_mtlockinit
_mtunlock
_nextafter
; _onexit ; disable _onexit for compatibility with DLL builds, real _onexit function provided by mingw-w64
_open
_open_osfhandle
_osver DATA
_pclose
_pctype DATA
_pgmptr DATA
_pipe
_popen
_purecall
_putch
_putenv
_putw
_pwctype DATA
_read
_rmdir
_rmtmp
_rotl
_rotr
_scalb
_searchenv
_setjmp
_setmode
_snprintf
_snwprintf
_sopen
_spawnl
_spawnle
_spawnlp
_spawnlpe
_spawnv
_spawnve
_spawnvp
_spawnvpe
_splitpath
_stat
_statusfp
_strcmpi
_strdate
_strdup
_strerror
_stricmp
_stricoll
_strlwr
_strnicmp
_strnset
_strrev
_strset
_strtime
_strupr
_swab
_sys_errlist DATA
_sys_nerr DATA
_tell
_tempnam
_timezone DATA
_tolower
_toupper
_tzname DATA
_tzset
_ultoa
_umask
_ungetch
_unlink
_utime
_vsnprintf
_vsnwprintf
_wcsdup
_wcsicmp
_wcsicoll
_wcslwr
_wcsnicmp
_wcsnset
_wcsrev
_wcsset
_wcsupr
_winmajor DATA
_winminor DATA
_winver DATA
_write
_y0
_y1
_yn
abort
abs
acos
asctime
asin
atan
atan2
_crt_atexit == atexit ; rename atexit to _crt_atexit for compatibility with UCRT, real atexit function provided by mingw-w64
atof
atoi
atol
bsearch
calloc
ceil
clearerr
clock
cos
cosh
ctime
difftime
div
exit
exp
fabs
fclose
feof
ferror
fflush
fgetc
fgetpos32 == fgetpos ; rename fgetpos as it is not 64-bit
fgets
fgetwc
floor
fmod
fopen
fprintf
fputc
fputs
fputwc
fread
free
freopen
frexp
fscanf
fseek
fsetpos32 == fsetpos ; rename fsetpos as it is not 64-bit
ftell
fwprintf
fwrite
fwscanf
getc
getchar
getenv
gets
gmtime
isalnum
isalpha
iscntrl
isdigit
isgraph
isleadbyte
islower
isprint
ispunct
isspace
isupper
iswalnum
iswalpha
iswascii
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
isxdigit
labs
ldexp
ldiv
localeconv
localtime
log
log10
longjmp
malloc
mblen
mbstowcs
mbtowc
memchr
memcmp
memcpy
memmove
memset
mktime
modf
perror
pow
printf
putc
putchar
puts
qsort
raise
rand
realloc
remove
rename
rewind
scanf
setbuf
setlocale
setvbuf
signal
sin
sinh
sprintf
sqrt
srand
sscanf
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strftime
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtod
strtok
strtol
strtoul
strxfrm
_swprintf == swprintf ; rename swprintf to _swprintf for compatibility with msvcr80+, real C95+ compatible swprintf provided by mingw-w64
swscanf
system
tan
tanh
time
tmpfile
tmpnam
tolower
toupper
towlower
towupper
ungetc
ungetwc
vfprintf
vfwprintf
vprintf
vsprintf
_vswprintf == vswprintf ; rename vswprintf to _vswprintf for compatibility with msvcr80+, real C95+ compatible vswprintf provided by mingw-w64
vwprintf
wcscat
wcschr
wcscmp
wcscoll
wcscpy
wcscspn
wcsftime
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsspn
wcsstr
wcstod
_wcstok == wcstok ; provide nonstandard function "wcstok" in the DLL, under the name "_wcstok" to match UCRT, the C95+ compatible "wcstok" is provided by mingw-w64
wcstol
wcstombs
wcstoul
wcsxfrm
wctomb
wprintf
wscanf

#define FIXED_SIZE_SYMBOLS
#define NO_WIDE_FIXED_SIZE
#define NO_I64_FIXED_SIZE
#define NO_FPOS64_ALIASES
#define NO_STRCMPI_ALIAS
#define WITH_NEXTAFTER_ALIAS
#define WITH_GET_PUT_WCHAR_ALIASES
#include "crt-aliases.def.in"
