2016-03-18 10 views
1

Некоторые из DLL, например. c:\windows\system32\mfc42.dll имеет длинный список порядковых номеров. Согласно What is an Ordinal number?, порядковые номера являются экспортируемыми функциями и могут использоваться как имя функции при вызове.Почему некоторые библиотеки DLL используют порядковые номера в качестве имени функции, а не определяют текстовое имя?

Моих вопросов:

  • Есть ли какая-либо причина использовать порядковые номера, как имя функции, а не определять более понятное текстовое имя?
  • Есть ли способ получить более подробное описание функции из порядковых номеров?
+0

Это микро-оптимизация. Ну, это было 20 лет назад, так что, вероятно, это все еще имело значение. –

ответ

1

Есть ли какая-либо причина использовать порядковые номера, как имя функции, а не определять более понятное текстовое имя?

Быстрее связывается с функцией, экспортируемой по порядку, по имени. Тем не менее, очень редко в сценариях реального мира это различие в производительности имеет измеримое воздействие.

Есть ли способ получить более подробное описание функции из порядковых номеров?

В общем, нет, если библиотека не предлагает дополнительную функцию на заказ, чтобы сделать это.

+0

@ pe3z: Дэвид ссылается на [привязка импорта] (https://blogs.msdn.microsoft.com/oldnewthing/20100318-00/?p=14563) и [import hinting] (https: //blogs.msdn. microsoft.com/oldnewthing/20100317-00/?p=14573). – 0xC0000022L