Как называются функции, экспортируемые по порядковому номеру? - PullRequest
2 голосов
/ 14 мая 2011

Большинство функций экспортирует имя, но некоторые экспортирует по порядковому номеру,

Как эти функции называются?

Ответы [ 2 ]

5 голосов
/ 14 мая 2011

@ AProgrammer: На ваш вопрос есть два ответа.Прежде всего, компоновщик будет знать, на какой порядковый номер позвонить.Эта информация сохраняется в файле .lib при создании библиотеки.В противном случае, как указывает @ c-smile, вы можете использовать GetProcAddress, чтобы найти функцию и вызвать ее.

int ordinal = xxx;
functor = (MyFunctorType) GetProcAddress(hMod, (LPCSTR) ordinal);
if (functor)
{
    functor(...);
}

@ DriverBoy: Да, это означает, что в экспортируемых символах может быть не более 65536 символов..DLL.

0 голосов
/ 14 мая 2011

http://msdn.microsoft.com/en-us/library/ms683212(v=vs.85).aspx

lpProcName [in] Имя функции или переменной или порядковый номер функции.Если этот параметр является порядковым значением, он должен быть в младшем слове;старшее слово должно быть нулем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...