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?

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -