Что делает номер 16 в символе DLL, который представляет _FooBar@16?

Убедитесь, что режим отладки включен, а также разрешает установку из неизвестных мест, если проблема не устраняется, отсоединение устройства, перезагрузка и подключение устройства должны работать

5
задан exebook 10 February 2014 в 16:22
поделиться

2 ответа

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

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

8
ответ дан 18 December 2019 в 14:51
поделиться

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

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

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

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

5
ответ дан 18 December 2019 в 14:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: