;
; Definition file of MSVCRT20.dll
; Automatic generated by gendef
; written by Kai Tietz 2008
;
LIBRARY "MSVCRT20.dll"
EXPORTS
#include "func.def.in"
; 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 __thiscall ios::operator void *(...)const throw()
??Bios@@QBEPAXXZ
; 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 _query_new_handler(void)
?_query_new_handler@@YAP6AHI@ZXZ
; int __cdecl _query_new_mode(void)
?_query_new_mode@@YAHXZ
; int(__cdecl *)(unsigned int)__cdecl _set_new_handler(int(__cdecl *)(unsigned int))
?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z
; int __cdecl _set_new_mode(int)
?_set_new_mode@@YAHH@Z
; void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *)__cdecl _set_se_translator(void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *))
?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@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
; public: void __thiscall ios::clear(int)
?clear@ios@@QAEXH@Z ; has WINAPI (@4)
; 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 __cdecl ios::clrlock(void)
?clrlock@ios@@QAAXXZ
; public: void __thiscall streambuf::clrlock(void)
?clrlock@streambuf@@QAEXXZ
; 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 __cdecl ios::lock(void)
?lock@ios@@QAAXXZ
; public: void __thiscall streambuf::lock(void)
?lock@streambuf@@QAEXXZ
; public: void __cdecl ios::lockbuf(void)
?lockbuf@ios@@QAAXXZ
; 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)
; void(__cdecl *)(void)__cdecl set_terminate(void(__cdecl *)(void))
?set_terminate@@YAP6AXXZP6AXXZ@Z
; void(__cdecl *)(void)__cdecl set_unexpected(void(__cdecl *)(void))
?set_unexpected@@YAP6AXXZP6AXXZ@Z
; 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 __cdecl ios::setlock(void)
?setlock@ios@@QAAXXZ
; 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
; void __cdecl terminate(void)
?terminate@@YAXXZ
; 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
; void __cdecl unexpected(void)
?unexpected@@YAXXZ
; public: void __cdecl ios::unlock(void)
?unlock@ios@@QAAXXZ
; public: void __thiscall streambuf::unlock(void)
?unlock@streambuf@@QAEXXZ
; public: void __cdecl ios::unlockbuf(void)
?unlockbuf@ios@@QAAXXZ
; 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
_CxxThrowException@8
_HUGE DATA
_XcptFilter
__CxxFrameHandler
__CxxLongjmpUnwind@4
__STRINGTOLD
__dllonexit
__doserrno
__fpecode
__msvcrt20_getmainargs == __getmainargs ; msvcrt20.dll's __getmainargs is incompatible with mingw-w64's __getmainargs, real __getmainargs provided by emu
__isascii
__iscsym
__iscsymf
__lconv_init
__p___argc
__p___argv
__p___initenv
__p___mb_cur_max
__p___wargv
__p___winitenv
__p__acmdln
__p__amblksiz
__p__commode
__p__daylight
__p__environ
__p__fmode
__p__iob
__p__mbctype
__p__osver
__p__pctype
__p__pgmptr
__p__pwctype
__p__timezone
__p__tzname
__p__wcmdln
__p__wenviron
__p__winmajor
__p__winminor
__p__winver
__p__wpgmptr
__pxcptinfoptrs
__threadhandle
__threadid
__toascii
__msvcrt20_wgetmainargs == __wgetmainargs ; msvcrt20.dll's __wgetmainargs is incompatible with mingw-w64's __wgetmainargs, real __wgetmainargs provided by emu
_abnormal_termination
_access
_amsg_exit
_assert
_atodbl
_atoldbl
_beep
_beginthread
_beginthreadex
_c_exit
_cabs
_cexit
_cgets
_chdir
_chdrive
_chgsign
_chmod
_chsize
_clearfp
_close
_commit
_control87
_controlfp
_copysign
_cprintf
_cputs
_creat
_cscanf
_ctype DATA
_cwait
_dup
_dup2
_ecvt
_endthread
_endthreadex
_eof
_errno
_except_handler2
_except_handler3
_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
_fpclass
_fpieee_flt
_fpreset
_fputchar
_fputwchar
_fsopen
_fstat
_ftime
_ftol
_fullpath
_futime
_gcvt
_get_osfhandle
_getch
_getche
_getcwd
_getdcwd
_getdiskfree
_getdllprocaddr
_getdrive
_getdrives
_getmbcp
_getpid
_getsystime
_getw
_getws
_global_unwind2
_heapadd
_heapchk
_heapmin
_heapset
_heapused
_heapwalk
_hypot
_initterm
_isatty
_isctype
_ismbbalnum
_ismbbalpha
_ismbbgraph
_ismbbkalnum
_ismbbkana
_ismbbkprint
_ismbbkpunct
_ismbblead
_ismbbprint
_ismbbpunct
_ismbbtrail
_ismbcalnum
_ismbcalpha
_ismbcdigit
_ismbcgraph
_ismbchira
_ismbckata
_ismbcl0
_ismbcl1
_ismbcl2
_ismbclegal
_ismbclower
_ismbcprint
_ismbcpunct
_ismbcspace
_ismbcsymbol
_ismbcupper
_ismbslead
_ismbstrail
_isnan
_itoa
_itow
_j0
_j1
_jn
_kbhit
_lfind
_loaddll
_local_unwind2
_locking
_logb
_longjmpex
_lrotl
_lrotr
_lsearch
_lseek
_ltoa
_ltow
_makepath
_matherr
_mbbtombc
_mbbtype
_mbccpy
_mbcjistojms
_mbcjmstojis
_mbclen
_mbctohira
_mbctokata
_mbctolower
_mbctombb
_mbctoupper
_mbsbtype
_mbscat
_mbschr
_mbscmp
_mbscoll
_mbscpy
_mbscspn
_mbsdec
_mbsdup
_mbsicmp
_mbsicoll
_mbsinc
_mbslen
_mbslwr
_mbsnbcat
_mbsnbcmp
_mbsnbcnt
_mbsnbcoll
_mbsnbcpy
_mbsnbicmp
_mbsnbicoll
_mbsnbset
_mbsncat
_mbsnccnt
_mbsncmp
_mbsncoll
_mbsncpy
_mbsnextc
_mbsnicmp
_mbsnicoll
_mbsninc
_mbsnset
_mbspbrk
_mbsrchr
_mbsrev
_mbsset
_mbsspn
_mbsspnp
_mbsstr
_mbstok
_mbstrlen
_mbsupr
_memccpy
_memicmp
_mkdir
_mktemp
_msize
_mtlock
_mtunlock
_nextafter
; _onexit ; disable _onexit for compatibility with DLL builds, real _onexit function provided by mingw-w64
_open
_open_osfhandle
_pclose
_pipe
_popen
_purecall
_putch
_putenv
_putw
_putws
_read
_rmdir
_rmtmp
_rotl
_rotr
_scalb
_searchenv
STDCALL_DECORATED_EXPORT(_seh_longjmp_unwind@4)
_seterrormode
_setjmp
_setjmp3
_setmbcp
_setmode
_setsystime
_sleep
_snprintf
_snwprintf
_sopen
_spawnl
_spawnle
_spawnlp
_spawnlpe
_spawnv
_spawnve
_spawnvp
_spawnvpe
_splitpath
_stat
_statusfp
_strcmpi
_strdate
_strdup
_strerror
_stricmp
_stricoll
_strlwr
_strncoll
_strnicmp
_strnicoll
_strnset
_strrev
_strset
_strtime
_strupr
_swab
_sys_errlist DATA
_sys_nerr DATA
_tccpy
_tclen
_tcschr
_tcsclen
_tcscmp
_tcscspn
_tcsdec
_tcsicmp
_tcsinc
_tcslwr
_tcsnbcnt
_tcsncat
_tcsnccat
_tcsnccmp
_tcsnccnt
_tcsnccpy
_tcsncicmp
_tcsncmp
_tcsncpy
_tcsncset
_tcsnextc
_tcsnicmp
_tcsninc
_tcsnset
_tcspbrk
_tcsrchr
_tcsrev
_tcsset
_tcsspn
_tcsspnp
_tcsstr
_tcstok
_tcsupr
_tell
_tempnam
_tolower
_toupper
_tzset
_ultoa
_ultow
_umask
_ungetch
_unlink
_unloaddll
_utime
_vsnprintf
_vsnwprintf
_waccess
_wasctime
_wchdir
_wchmod
_wcreat
_wcsdup
_wcsicmp
_wcsicoll
_wcslwr
_wcsncoll
_wcsnicmp
_wcsnicoll
_wcsnset
_wcsrev
_wcsset
_wcsupr
_wctime
_wexecl
_wexecle
_wexeclp
_wexeclpe
_wexecv
_wexecve
_wexecvp
_wexecvpe
_wfdopen
_wfindfirst
_wfindnext
_wfopen
_wfreopen
_wfsopen
_wfullpath
_wgetcwd
_wgetdcwd
_wgetenv
_wmakepath
_wmkdir
_wmktemp
_wopen
_wperror
_wpopen
_wputenv
_wremove
_wrename
_write
_wrmdir
_wsearchenv
_wsetlocale
_wsopen
_wspawnl
_wspawnle
_wspawnlp
_wspawnlpe
_wspawnv
_wspawnve
_wspawnvp
_wspawnvpe
_wsplitpath
_wstat
_wstrdate
_wstrtime
_wsystem
_wtempnam
_wtmpnam
_wtoi
_wtol
_wunlink
_wutime
_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
fgetws
floor
fmod
fopen
fprintf
fputc
fputs
fputwc
fputws
fread
free
freopen
frexp
fscanf
fseek
fsetpos32 == fsetpos ; rename fsetpos as it is not 64-bit
ftell
fwprintf
fwrite
fwscanf
getc
getchar
getenv
gets
getwc
getwchar
gmtime
is_wctype
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
putwc
putwchar
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

; These symbols are not available in Win32s version of msvcrt20.dll
; class ostream_withassign cerr
?cerr@@3Vostream_withassign@@A DATA
; class istream_withassign cin
?cin@@3Vistream_withassign@@A DATA
; class ostream_withassign clog
?clog@@3Vostream_withassign@@A DATA
; class ostream_withassign cout
?cout@@3Vostream_withassign@@A DATA
__argc DATA
__argv DATA
__initenv DATA
__mb_cur_max DATA
__wargv DATA
__winitenv DATA
_acmdln DATA
_aexit_rtn DATA
_commode DATA
_daylight DATA
_environ DATA
_fmode DATA
_iob DATA
_mbctype DATA
_osver DATA
_pctype DATA
_pgmptr DATA
_pwctype DATA
_timezone DATA
_tzname DATA
_wcmdln DATA
_wenviron DATA
_winmajor DATA
_winminor DATA
_winver DATA
_wpgmptr DATA

; These symbols are not available in the original Microsoft Visual C++ 2.0 version of msvcrt20.dll
; They were added in Microsoft Visual C++ 2.1 Upgrade version of msvcrt20.dll and are present also in all OS system version of msvcrt20.dll
_adj_fdiv_m16i ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdiv_m32 ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdiv_m32i ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdiv_m64 ; msvc symbol is without decoration but callee pop stack (like stdcall @8)
_adj_fdiv_r
_adj_fdivr_m16i ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdivr_m32 ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdivr_m32i ; msvc symbol is without decoration but callee pop stack (like stdcall @4)
_adj_fdivr_m64 ; msvc symbol is without decoration but callee pop stack (like stdcall @8)
_adj_fpatan
_adj_fprem
_adj_fprem1
_adj_fptan
_adjust_fdiv DATA
_safe_fdiv
_safe_fdivr
_safe_fprem
_safe_fprem1

; Include symbol aliases for compatibility with msvcrt.dll
#define FIXED_SIZE_SYMBOLS
#define NO_I64_FIXED_SIZE
#define NO_FPOS64_ALIASES
#define NO_STRCMPI_ALIAS
#define NO_DSTBIAS
#define WITH_NEXTAFTER_ALIAS
#define WITH_IOB_FUNC_ALIAS
#define WITH_TZ_ALIASES
#include "crt-aliases.def.in"
