что такое @number в выводе экспорта мусорной корзины

С помощью DUMPBIN на C ++ .DLL (или IMPLIB .LIB файле) с / EXPORTS или / IMPORTS я вижу синтаксис в выводе, подобный следующему:

Exports

ordinal    name

_CloseConduit@4
_ConduitPort
_GetConduitVersion@4
_GetStatusConduit@8
_GetTimeout@0
_OpenConduit@4

Я не мог нигде найти определение того, что @n обозначение средства. Я наконец-то пришел к выводу, что это число байтов данных аргумента, но это заставляет меня немного нервничать в зависимости от вывода из нескольких примеров. Кто-нибудь может указать на ссылку или сказать с какой-либо властью, что означает число здесь?

4

Решение

Вы правильно сделали вывод, что @n указывает количество байтов для параметров функции. Вы можете найти соответствующую документацию MSDN Вот а также Вот.

В частности, именно так MSVC украшает extern "C" __stdcall функции в C ++. Обратите внимание, что это технически определяется реализацией, и другие компиляторы делают это по-разному.

Например, MinGW-GCC украшает его без ведущее подчеркивание. Компилятор Embarcadero (ранее Borland) не украшает __stdcall работает вообще, в то время как компилятор Digital Mar использует ту же схему оформления, что и MSVC.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]