Я не могу полностью понять, как работает таблица переходов адресов.Таблица переходов адресов
В общем случае при компиляции файла компилятор знает, где устанавливать функции dll в памяти, но как только приложение выполняется, некоторые из адресов функций могут изменять их местоположение в памяти из-за конфликта между адресами.
Например: Компилятор загружает функцию GetModuleHandle
по адресу 40000 и как-то есть другая функция GetModuleFileName
, которая загружается по тому же адресу.
В зависимости от того, как функции доступны в приложении, загрузчик окон добавит вторую функцию в таблицу перехода по адресу и когда будет вызвана первая функция, загрузчик будет проходить через таблицу перехода адреса и изменить адрес функций на главный адрес для вызова, а первая функция перейдет в таблицу переходов адреса
Это так, как работает таблица переходов адреса?
Трудно понять смысл вашего примера, но все, что вы хотели знать о связывании в [этой статье в журнале] (http://msdn.microsoft.com /en-us/magazine/cc301808.aspx). –