Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.22;
Скачать: CL | DM;

Вниз

Как узнать параметры функций в DLL?   Найти похожие ветки 

 
Vorobyev Sergey   (2003-09-11 09:46) [0]

Привет всем!
Есть одна DLL-ка (знаю ее предназначение),
получил список функций..
Хочу использовать в своем проекте,
однако не знаю как узнать, какие параметры ей требуются..

Нет необходимости знать какого типа параметры (integer, PChar,DWORD и т.п., по-моему это и невозможно),
достаточно будет информации хотя бы сколько байт параметров передается в функцию, чтобы не вызвать AV, далее буду экспериментировать с параметрами..
---
Спасибо


 
KSergey ©   (2003-09-11 10:02) [1]

1.Кол-во параметров узнать так же невозможно, кроме как дизассемблируя и изучая код экспортируемых ф-ций.
2.Этот вопрос задавался последние 3 дня по разу - точно. Читайте иногда форум.


 
Vorobyev Sergey   (2003-09-11 10:24) [2]


> 2.Этот вопрос задавался последние 3 дня по разу - точно.
> Читайте иногда форум.


Специально просмотрел форум за последнюю неделю, нашел только вот это ( http://delphimaster.net/view/1-1063049854/), но здесь же нет конкретного ответа на вопрос..
Я так же перерыл инет (даже не русскоязычный), в основном все складывается к тому, что параметры узнать невозможно, кроме как дизассемблируя

> 1.Кол-во параметров узнать так же невозможно, кроме как
> дизассемблируя и изучая код экспортируемых ф-ций.


Ну допустим, я с этим смирился и начал дизассемблировать,
но тогда на что смотреть, чтобы определить параметры?
Есть какие-то общие рекомендации?
Может быть смотреть на POP, PUSH или еще что?
Или все зависит от среды, в которой разрабатывалась DLL?
Тогда наверняка есть свои рекомендации для DLL на Delphi, Visual C и т.п.

А?


 
Digitman ©   (2003-09-11 10:39) [3]


> Или все зависит от среды, в которой разрабатывалась DLL?


зависит. прямым образом.


> наверняка есть свои рекомендации для DLL на Delphi, Visual
> C


скорее рекомендации в 1-ю очередь будут иметь прямое отношение к соглашениям о межъязыковых вызовах, нежели к средам программирования и компиляторам в их составе

те же Delphi и Visual C , имея определенные (и различные) соглашения о вызовах по умолчанию, тем не менее позволяют в декларации подпрограмм перекрыть умалчиваемые соглашения явно указываемыми, если разрабатываемый программный продукт предназначен для использования в каких-то конкретных иных средах программной разработки

инф-ции о тех или иных соглашениях для тех или иных эксп.вызовов DLL не содержит, и получить ее можно только анализом дизассемблируемого кода библ-ки

зная отличия в тех или иных соглашениях о вызовах, можно по результатам анализа сделать заключение о том, какие параметры в каком порядке и каким образом должны передаваться в тот или иной DLL-вызов, равно как и тип/размерность и порядок порядок получения результата, если таковой предусмотрен


 
KSergey ©   (2003-09-11 10:48) [4]

В книжках по Си соответстующие главы называются "соглашения о вызовах (передаче параметров)". В книгах по другим языкам - аналогично.

А вот вопрос "Ну дизассемблировал, а что дальше" - уж простите, но ответиьт можно одно: смотреть внимательно. Книжки читать. Как тут конкретно сказать??



Страницы: 1 вся ветка

Текущий архив: 2003.09.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
3-71509
Eagle Owl
2003-08-30 00:28
2003.09.22
Добавление поля к таблице


3-71558
NiBL'S
2003-08-28 17:26
2003.09.22
В DBgrid e не отображаются все записи таблицы.


3-71518
SkullNet
2003-08-31 03:44
2003.09.22
Фильтрация по статическим полям


1-71742
Жук
2003-09-09 15:17
2003.09.22
Проблема с сохранением значения ToolBar.ButtonHeight


1-71613
Алексей Петухов
2003-09-09 14:44
2003.09.22
Как определить конец таблицы в MSWord?