Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Вниз

Как узнать параметры функций в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.019 c
6-71809
Jumbo
2003-07-16 20:29
2003.09.22
Создать письмо


14-71824
vopros
2003-09-02 10:16
2003.09.22
Из головы вылетело.


7-71976
Ionv
2003-07-04 07:42
2003.09.22
Как работать с АЦП(портами) в WinXP?


1-71662
Vladislav
2003-09-08 16:44
2003.09.22
PDF viewer


3-71494
Berezne
2003-09-01 13:09
2003.09.22
Возможно ли добавить поле к таблице





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский