|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.02.2012, 15:43 | #1 | |
Новичок
Джуниор
Регистрация: 24.02.2012
Сообщений: 7
|
DLL экспорт
Цитата:
т.е. в двух подключаемых dll нельзя делать таблицу импорта с одной и тойже функцией через ordinal ? чето не пойму вобще ниче |
|
24.02.2012, 17:04 | #2 |
Форумчанин
Регистрация: 11.01.2012
Сообщений: 177
|
функции из DLL можно экспортировать по любому ординалу в диапазоне 1-65535.
можно
progromore.i2p - первый русскоязычный портал программистов в скрытосети
|
24.02.2012, 17:16 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
В ДЛЛ определен список функций, которых из нее можно вызвать. Ординалы функций, или точнее их порядковые номера - это порядковые номера этх функций в ДЛЛ.
Например ты экспортируешь функции Код:
Разница в получении из ДЛЛ функции по ординалу от получения по имени заключается в том что указывая ординал ты фактически говоришь "обратись в массив функций по такому-то номеру" Как будто бы твои функции компилятор помещал в Array[1..дофига] of function() а программа импортер запрашивала foo:=Array[номер функции]. Фактически твоя прога (если таблица экспорта построена правильным компилятором) вычисляет адресс функции помножив ее ординал на 4 (если память не изменяет). Поэтому доступ по ординалу проходит быстрее. Если же ты просишь функцию по имени, загрузчику приходится пройтись по всей таблице сравнивания описанные в ней имена с заданным тобой, как будто Код:
Цитата:
I'm learning to live...
|
|
24.02.2012, 17:25 | #4 |
Форумчанин
Регистрация: 11.01.2012
Сообщений: 177
|
а вообще, ординалы уже никто не использует. это рудимент оставшийся от старых программ и технологий. сколько видел программ и DLL, везде используется импорт по имени. ТС, можешь не париться, забудь про ординалы.
progromore.i2p - первый русскоязычный портал программистов в скрытосети
|
24.02.2012, 19:18 | #5 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Если хочется досконально разобраться, можно почитать:
http://www.transl-gunsmoker.ru/2011/...ted-in-16.html http://www.transl-gunsmoker.ru/2011/...ted-in-16.html http://www.transl-gunsmoker.ru/2011/...ted-in-32.html http://www.transl-gunsmoker.ru/2011/...re-really.html http://www.transl-gunsmoker.ru/2011/...-resolved.html http://www.transl-gunsmoker.ru/2011/...naive-way.html http://www.transl-gunsmoker.ru/2011/...-imported.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
25.02.2012, 02:03 | #6 | |
Новичок
Джуниор
Регистрация: 24.02.2012
Сообщений: 7
|
Цитата:
|
|
25.02.2012, 12:14 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Это значит что разработчик той DLL/EXE указывает что импорт будет по ординалу.
Забей на ординалы, это уже вышло из моды, и даже стало опасным занятием.
I'm learning to live...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Экспорт из *.dll | BingoBongo | Общие вопросы Delphi | 8 | 09.05.2011 13:28 |
Экспорт функции C++ в библиотеку DLL | lebedevmd | Фриланс | 2 | 12.04.2011 14:45 |
Экспорт классов в DLL | _-Re@l-_ | Паскаль, Turbo Pascal, PascalABC.NET | 16 | 17.11.2010 21:25 |
экспорт в dll | varelik | Общие вопросы Delphi | 3 | 13.01.2010 11:30 |
экспорт классов из Dll | Alar | Общие вопросы Delphi | 0 | 29.10.2006 21:53 |