Что означает число 16 в символе DLL _FooBar @ 16? - PullRequest
5 голосов
/ 27 мая 2009

Что означает число 16 в символе DLL _FooBar@16?

Ответы [ 2 ]

8 голосов
/ 27 мая 2009

Это означает, что _FooBar - это функция __stdcall, которая принимает 16 байтов параметров.

32-битные соглашения о вызовах на x86 описаны здесь: http://blogs.msdn.com/oldnewthing/archive/2004/01/08/48616.aspx

5 голосов
/ 27 мая 2009

Это общее искажение имени и зависит от соглашения о вызовах функции.

Различные соглашения о вызовах и сопоставление имен, применяемые к функциям, задокументированы как Соглашения о передаче и именовании аргументов . Вам нужно будет щелкнуть отдельные ссылки, чтобы увидеть точное нанесенное искажение.

В вашем случае у вас есть __stdcall соглашение, которое использует следующее соглашение об именах:

Подчеркивание (_) начинается с префикса название. За именем следует знак знак (@), за которым следует номер байты (в десятичном виде) в аргументе список. Поэтому функция объявлена так как int func (int a, double b) оформлен следующим образом: _func @ 12

...