c - Multiple decorated/mangled versions from the same function in a single library -
when dump external symbols of library, may find there multiple versions of same function name; such case printf function c library, find names like
__imp__printf _printf ___imp___printf_l why there no 1 version of function?
when tried see obj member in library belong to, found belong same obj file (an import library) have 1 version, _printf, , proc name among these versions, , rest of them "data".
the library msvcrtd.lib , library member msvcr100d.dll, platform microsoft windows 7 , visual c++.
can explain me?
edit: adding of "printf's" in msvcrtd.lib library eye catch, , there more.
some of them belong same obj member in library( according it's offset number in pictures), , not . need understand why of these versions of printf's exist in c library ? exist support several compilers(with several mangling) might call printf function? because when called printf masm decorated _printf , when called c compiler , decorated __imp__printf , guessed these multiple versions might exist support different compilers might use library, correct or not?
please need understand linkers , how work , , answer question me lot. there 1 printf call time, why linker needs of these?

Comments
Post a Comment