;
; Definition file of MSVCR70.dll
; Automatic generated by gendef
; written by Kai Tietz 2008
;
LIBRARY "MSVCR70.dll"
EXPORTS
; public: __thiscall __non_rtti_object::__non_rtti_object(class __non_rtti_object const &)
??0__non_rtti_object@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall __non_rtti_object::__non_rtti_object(char const *)
??0__non_rtti_object@@QAE@PBD@Z ; has WINAPI (@4)
; private: __thiscall bad_cast::bad_cast(char const *const *)
??0bad_cast@@AAE@PBQBD@Z ; has WINAPI (@4)
; public: __thiscall bad_cast::bad_cast(char const *const &)
??0bad_cast@@QAE@ABQBD@Z ; has WINAPI (@4)
; public: __thiscall bad_cast::bad_cast(class bad_cast const &)
??0bad_cast@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall bad_cast::bad_cast(char const *)
??0bad_cast@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall bad_typeid::bad_typeid(class bad_typeid const &)
??0bad_typeid@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall bad_typeid::bad_typeid(char const *)
??0bad_typeid@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall exception::exception(char const *const &)
??0exception@@QAE@ABQBD@Z ; has WINAPI (@4)
; public: __thiscall exception::exception(class exception const &)
??0exception@@QAE@ABV0@@Z ; has WINAPI (@4)
; public: __thiscall exception::exception(void)
??0exception@@QAE@XZ
; public: virtual __thiscall __non_rtti_object::~__non_rtti_object(void)
??1__non_rtti_object@@UAE@XZ
; public: virtual __thiscall bad_cast::~bad_cast(void)
??1bad_cast@@UAE@XZ
; public: virtual __thiscall bad_typeid::~bad_typeid(void)
??1bad_typeid@@UAE@XZ
; public: virtual __thiscall exception::~exception(void)
??1exception@@UAE@XZ
; public: virtual __thiscall type_info::~type_info(void)
??1type_info@@UAE@XZ
; void *__cdecl operator new(unsigned int)
??2@YAPAXI@Z
; void __cdecl operator delete(void *)
??3@YAXPAX@Z
; public: class __non_rtti_object &__thiscall __non_rtti_object::operator =(class __non_rtti_object const &)
??4__non_rtti_object@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class bad_cast &__thiscall bad_cast::operator =(class bad_cast const &)
??4bad_cast@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class bad_typeid &__thiscall bad_typeid::operator =(class bad_typeid const &)
??4bad_typeid@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: class exception &__thiscall exception::operator =(class exception const &)
??4exception@@QAEAAV0@ABV0@@Z ; has WINAPI (@4)
; public: int __thiscall type_info::operator ==(class type_info const &)const 
??8type_info@@QBEHABV0@@Z ; has WINAPI (@4)
; public: int __thiscall type_info::operator !=(class type_info const &)const 
??9type_info@@QBEHABV0@@Z ; has WINAPI (@4)
; const __non_rtti_object::$vftable
??_7__non_rtti_object@@6B@ DATA
; const bad_cast::$vftable
??_7bad_cast@@6B@ DATA
; const bad_typeid::$vftable
??_7bad_typeid@@6B@ DATA
; const exception::$vftable
??_7exception@@6B@ DATA
; public: virtual void *__thiscall __non_rtti_object::__vecDelDtor(unsigned int)
??_E__non_rtti_object@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall bad_cast::__vecDelDtor(unsigned int)
??_Ebad_cast@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall bad_typeid::__vecDelDtor(unsigned int)
??_Ebad_typeid@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall exception::__vecDelDtor(unsigned int)
??_Eexception@@UAEPAXI@Z ; has WINAPI (@4)
; public: void __thiscall bad_cast::__dflt_ctor_closure(void)
??_Fbad_cast@@QAEXXZ
; public: void __thiscall bad_typeid::__dflt_ctor_closure(void)
??_Fbad_typeid@@QAEXXZ
; public: virtual void *__thiscall __non_rtti_object::__delDtor(unsigned int)
??_G__non_rtti_object@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall bad_cast::__delDtor(unsigned int)
??_Gbad_cast@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall bad_typeid::__delDtor(unsigned int)
??_Gbad_typeid@@UAEPAXI@Z ; has WINAPI (@4)
; public: virtual void *__thiscall exception::__delDtor(unsigned int)
??_Gexception@@UAEPAXI@Z ; has WINAPI (@4)
; void *__cdecl operator new[](unsigned int)
??_U@YAPAXI@Z
; void __cdecl operator delete[](void *)
??_V@YAXPAX@Z
; 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: int __thiscall type_info::before(class type_info const &)const 
?before@type_info@@QBEHABV1@@Z ; has WINAPI (@4)
; public: char const *__thiscall type_info::name(void)const 
?name@type_info@@QBEPBDXZ
; public: char const *__thiscall type_info::raw_name(void)const 
?raw_name@type_info@@QBEPBDXZ
; void(__cdecl *)(void)__cdecl set_new_handler(void(__cdecl *)(void))
?set_new_handler@@YAP6AXXZP6AXXZ@Z
; 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
; void __cdecl terminate(void)
?terminate@@YAXXZ ; has WINAPI (@4)
; void __cdecl unexpected(void)
?unexpected@@YAXXZ ; has WINAPI (@4)
; public: virtual char const *__thiscall exception::what(void)const 
?what@exception@@UBEPBDXZ

__uncaught_exception
$I10_OUTPUT
_CIacos
_CIasin
_CIatan
_CIatan2
_CIcos
_CIcosh
_CIexp
_CIfmod
_CIlog
_CIlog10
_CIpow
_CIsin
_CIsinh
_CIsqrt
_CItan
_CItanh
_CRT_RTC_INIT
_CxxThrowException@8
_EH_prolog
_Getdays
_Getmonths
_Gettnames
_HUGE DATA
_Strftime
_XcptFilter
__CxxCallUnwindDtor
__CxxCallUnwindVecDtor
__CxxDetectRethrow
__CxxExceptionFilter
__CxxFrameHandler
__CxxLongjmpUnwind@4
__CxxQueryExceptionSize
__CxxRegisterExceptionObject
__CxxUnregisterExceptionObject
__DestructExceptionObject
__RTCastToVoid
__RTDynamicCast
__RTtypeid
__STRINGTOLD
___lc_codepage_func
___lc_collate_cp_func
___lc_handle_func
___mb_cur_max_func
___setlc_active_func
___unguarded_readlc_active_add_func
__argc DATA
__argv DATA
__badioinfo DATA
__buffer_overrun
__crtCompareStringA
__crtCompareStringW
__crtGetLocaleInfoW
__crtGetStringTypeW
__crtLCMapStringA
__crtLCMapStringW
__dllonexit
__doserrno
__fpecode
__getmainargs
__initenv DATA
__iob_func
__isascii
__iscsym
__iscsymf
__lc_clike DATA
__lc_codepage DATA
__lc_collate_cp DATA
__lc_handle DATA
__lconv_init
__mb_cur_max DATA
__p___argc
__p___argv
__p___initenv
__p___mb_cur_max
__p___wargv
__p___winitenv
__p__acmdln
__p__amblksiz
__p__commode
__p__daylight
__p__dstbias
__p__environ
__p__fileinfo
__p__fmode
__p__iob
__p__mbcasemap
__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
__pctype_func
__pioinfo DATA
__pwctype_func
__pxcptinfoptrs
__security_error_handler
__set_app_type
__set_buffer_overrun_handler
__setlc_active DATA
__setusermatherr
__threadhandle
__threadid
__toascii
__unDName
__unDNameEx
__unguarded_readlc_active DATA
__wargv DATA
__wcserror
__wgetmainargs
__winitenv DATA
_abnormal_termination
_access
_acmdln DATA
_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
_aexit_rtn DATA
_aligned_free
_aligned_malloc
_aligned_offset_malloc
_aligned_offset_realloc
_aligned_realloc
_amsg_exit
__msvcrt_assert DATA == _assert ; mingw-w64 provides _assert() function as wrapper around renamed __msvcrt_assert symbol
_atodbl
_atoi64
_atoldbl
_beep
_beginthread
_beginthreadex
_c_exit
_cabs
_callnewh
_cexit
_cgets
_cgetws
_chdir
_chdrive
_chgsign
_chkesp
_chmod
_chsize
_clearfp
_close
_commit
_commode DATA
_control87
_controlfp
_copysign
_cprintf
_cputs
_cputws
_creat
_cscanf
_ctime64
_ctype DATA
_cwait
_cwprintf
_cwscanf
_daylight DATA
_dstbias DATA
_dup
_dup2
_ecvt
_endthread
_endthreadex
_environ DATA
_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
_filelengthi64
_fileno
_findclose
_findfirst
_findfirst64
_findfirsti64
_findnext
_findnext64
_findnexti64
_finite
_flsbuf
_flushall
_fmode DATA
_fpclass
_fpieee_flt
_fpreset
_fputchar
_fputwchar
_fsopen
_fstat
_fstat64
_fstati64
_ftime
_ftime64
_ftol
_fullpath
_futime
_futime64
_gcvt
_get_osfhandle
_get_sbh_threshold
_getch
_getche
_getcwd
_getdcwd
_getdiskfree
_getdllprocaddr
_getdrive
_getdrives
_getmaxstdio
_getmbcp
_getpid
_getsystime
_getw
_getwch
_getwche
_getws
_global_unwind2
_gmtime64
_heapadd
_heapchk
_heapmin
_heapset
_heapused
_heapwalk
_hypot
_i64toa
_i64tow
_initterm
_inp
_inpd
_inpw
_iob DATA
_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
_localtime64
_lock
_locking
_logb
_longjmpex
_lrotl
_lrotr
_lsearch
_lseek
_lseeki64
_ltoa
_ltow
_makepath
_mbbtombc
_mbbtype
_mbcasemap DATA
_mbccpy
_mbcjistojms
_mbcjmstojis
_mbclen
_mbctohira
_mbctokata
_mbctolower
_mbctombb
_mbctoupper
_mbctype DATA
_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
_mktime64
_msize
_nextafter
; _onexit ; disable _onexit for compatibility with DLL builds, real _onexit function provided by mingw-w64
_open
_open_osfhandle
_osplatform DATA
_osver DATA
_outp
_outpd
_outpw
_pclose
_pctype DATA
_pgmptr DATA
_pipe
_popen
_purecall
_putch
_putenv
_putw
_putwch
_putws
_pwctype DATA
_read
_resetstkoflw
_rmdir
_rmtmp
_rotl
_rotr
_safe_fdiv
_safe_fdivr
_safe_fprem
_safe_fprem1
_scalb
_scprintf
_scwprintf
_searchenv
_seh_longjmp_unwind@4
_set_SSE2_enable
_set_error_mode
_set_sbh_threshold
_set_security_error_handler
_seterrormode
_setjmp
_setjmp3
_setmaxstdio
_setmbcp
_setmode
_setsystime
_sleep
_snprintf
_snscanf
_snwprintf
_snwscanf
_sopen
_spawnl
_spawnle
_spawnlp
_spawnlpe
_spawnv
_spawnve
_spawnvp
_spawnvpe
_splitpath
_stat
_stat64
_stati64
_statusfp
_strcmpi
_strdate
_strdup
_strerror
_stricmp
_stricoll
_strlwr
_strncoll
_strnicmp
_strnicoll
_strnset
_strrev
_strset
_strtime
_strtoi64
_strtoui64
_strupr
_swab
_sys_errlist DATA
_sys_nerr DATA
_tell
_telli64
_tempnam
_time64
_timezone DATA
_tolower
_toupper
_tzname DATA
_tzset
_ui64toa
_ui64tow
_ultoa
_ultow
_umask
_ungetch
_ungetwch
_unlink
_unloaddll
_unlock
_utime
_utime64
_vscprintf
_vscwprintf
_vsnprintf
_vsnwprintf
_waccess
_wasctime
_wchdir
_wchmod
_wcmdln DATA
_wcreat
_wcsdup
_wcserror
_wcsicmp
_wcsicoll
_wcslwr
_wcsncoll
_wcsnicmp
_wcsnicoll
_wcsnset
_wcsrev
_wcsset
_wcstoi64
_wcstoui64
_wcsupr
_wctime
_wctime64
_wctype DATA
_wenviron DATA
_wexecl
_wexecle
_wexeclp
_wexeclpe
_wexecv
_wexecve
_wexecvp
_wexecvpe
_wfdopen
_wfindfirst
_wfindfirst64
_wfindfirsti64
_wfindnext
_wfindnext64
_wfindnexti64
_wfopen
_wfreopen
_wfsopen
_wfullpath
_wgetcwd
_wgetdcwd
_wgetenv
_winmajor DATA
_winminor DATA
_winver DATA
_wmakepath
_wmkdir
_wmktemp
_wopen
_wperror
_wpgmptr DATA
_wpopen
_wputenv
_wremove
_wrename
_write
_wrmdir
_wsearchenv
_wsetlocale
_wsopen
_wspawnl
_wspawnle
_wspawnlp
_wspawnlpe
_wspawnv
_wspawnve
_wspawnvp
_wspawnvpe
_wsplitpath
_wstat
_wstat64
_wstati64
_wstrdate
_wstrtime
_wsystem
_wtempnam
_wtmpnam
_wtof
_wtoi
_wtoi64
_wtol
_wunlink
_wutime
_wutime64
_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
fgetpos
fgets
fgetwc
fgetws
floor
fmod
fopen
fprintf
fputc
fputs
fputwc
fputws
fread
free
freopen
frexp
fscanf
fseek
fsetpos
ftell
fwprintf
fwrite
fwscanf
getc
getchar
getenv
gets
getwc
getwchar
gmtime
is_wctype
isalnum
isalpha
iscntrl
isdigit
isgraph
isleadbyte
islower
; isprint ; replaced by emu, CRT version mishandles TAB character
ispunct
isspace
isupper
iswalnum
iswalpha
iswascii
iswcntrl
__msvcrt_iswctype DATA == iswctype; mingw-w64 provides real iswctype as a wrapper around renamed __msvcrt_iswctype
iswdigit
iswgraph
iswlower
; iswprint ; replaced by emu, CRT version mishandles TAB character
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 replaced by emu, CRT version may not use writable temporary directory
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_FIXED_SIZE_64_ALIAS
#define NO_TMPFILE_ALIAS
#define NO_STRCMPI_ALIAS
#define WITH_NEXTAFTER_ALIAS
#define WITH_TZ_ALIASES
#define WITH_ATOLL_ALIAS
#define WITH_STRTO64_ALIAS
#include "crt-aliases.def.in"
