Plusieurs versions décorées / mutilées de la même fonction dans une même bibliothèque

Lorsque vous videz les symboles externes d’une bibliothèque, vous pouvez constater qu’il existe plusieurs versions du même nom de fonction. comme dans le cas de la fonction printf de la bibliothèque C, vous trouverez des noms tels que

 __imp__printf _printf ___imp___printf_l 

Pourquoi il n’y a pas qu’une seule version de la fonction?

Quand j’ai essayé de voir à quel membre OBJ de la bibliothèque ils appartiennent, j’ai constaté qu’ils appartenaient tous au même fichier OBJ (une bibliothèque d’importation) qui ne _printf qu’une version, _printf , et qu’il _printf du seul nom PROC toutes ces versions, et le rest sont “DATA”.

La bibliothèque est MSVCRTD.lib et le membre de la bibliothèque est MSVCR100D.dll, la plate-forme est Microsoft Windows 7 et Visual C ++.

Quelqu’un peut-il m’expliquer cela?

EDIT: append la plupart des “printf” dans la bibliothèque msvcrtd.lib que mon regard pourrait capter, et en réalité il y en a plus.

certains d’entre eux appartiennent au même membre OBJ dans la bibliothèque (en fonction de son numéro offset dans les images), d’autres non. J’ai besoin de comprendre pourquoi toutes ces versions de printf existent dans la bibliothèque c? existent-ils pour supporter plusieurs compilateurs (avec plusieurs armsages) qui pourraient appeler la fonction printf? parce que quand j’ai appelé printf depuis MASM, il l’a décoré en tant que _printf et lorsque je l’ai appelé depuis un compilateur C, il l’a décoré pour être __imp__printf . J’ai donc supposé que ces versions multiples pourraient exister pour prendre en charge différents compilateurs pouvant utiliser la bibliothèque. Est-ce correct? ou pas?

s’il vous plaît j’ai besoin de comprendre les linkers et comment ils fonctionnent, et une réponse à cette question m’aidera beaucoup. pour nous, il n’y a qu’une seule impression qui s’appelle tout le temps, pourquoi l’éditeur de liens a-t-il besoin de tout cela?

entrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image icientrez la description de l'image ici