|
|
|
Не могу получить адрес функции в DLL
|
|||
|---|---|---|---|
|
#18+
Привет всем! Есть GATE.DLL - библиотека для работы с пластиковыми картами от СБ РФ и дока Описаловка...Для выполнения любой операции внешние программы вызывают функцию call_sb_kernel из библиотеки gate.dll. Эта функция описана следующим образом: extern “C” DWORD call_sb_kernel( DWORD func, void *in_arg, void *out_arg); Функция использует метод вызова языка С (cdecl). ... Чем сделана DLL не известно. Почитал форум, RSDN и наваял следующий код (MSVC6SP5): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Получаю call_sb_kernel == NULL. Как я понимаю - GATE.DLL подгружается, а адрес функции call_sb_kernel получить не удается. Может я что-то не так с параметрами написал в typedef DWORD (__cdecl *GATE)(DWORD func, void *in_arg, void *out_arg) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 17:13 |
|
||
|
Не могу получить адрес функции в DLL
|
|||
|---|---|---|---|
|
#18+
Dima T....Получаю call_sb_kernel == NULL. Как я понимаю - GATE.DLL подгружается, а адрес функции call_sb_kernel получить не удается. Может я что-то не так с параметрами написал в typedef DWORD (__cdecl *GATE)(DWORD func, void *in_arg, void *out_arg) ? явная загрузка дэлеле сводиться к следующим этапам... 1) загрузка самой библиотеки...(лоад лайбрэри возвращает не налл.. 2) взятие адреса искомой функции, либо переменной... 3) юзанье... у Вас не прокатывает второй шаг...Скорее всего не совпадает имена запрашиваемое и декларированное на импорт... как проверить...есть дампбин кажись - та что выводит всю статистику об дэлеле.. воспользуйтесь её и посмотрите какие имена та импортирует... на данном этапе - как Вы объявили фкнцию, что коту намордник... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 17:38 |
|
||
|
Не могу получить адрес функции в DLL
|
|||
|---|---|---|---|
|
#18+
Dima T...Есть GATE.DLL - библиотека для работы с пластиковыми картами от СБ РФ и дока... модуль авторизации поди ? гы.. вот за что я люблю внешнии процессинги - это то, что каждый тянет одеяло в свою сторону... посему ниша пока пустая...а авторизация по уму первая появилась в UCS - под сервак Novell(а)...Правда это первая бесплатная ) (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 17:41 |
|
||
|
Не могу получить адрес функции в DLL
|
|||
|---|---|---|---|
|
#18+
сработало GetProcAddress(hGate, " _call_sb_kernel ") Похоже на дельфи писано. Дальше хуже - инициализирую структуры с параметрами, вызываю - вылетает с исключением, но это уже наверно вопрос к тем кто эту GATE.DLL юзал :( Тут таких нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 17:53 |
|
||
|
Не могу получить адрес функции в DLL
|
|||
|---|---|---|---|
|
#18+
Dima Tсработало GetProcAddress(hGate, " _call_sb_kernel ") Похоже на дельфи писано. Дальше хуже - инициализирую структуры с параметрами, вызываю - вылетает с исключением, но это уже наверно вопрос к тем кто эту GATE.DLL юзал :( Тут таких нет? это вторая серия... что нуна.. 1) почитать внимательнее по поводу работы со стэком внутри этой дэлеле, и правилом объявления в сях... 2) если не полечилось официально - то запускаем отладчик и вперёд под азмом на мины, а награды потом... Желательно юзать лёгкие функции, без защит, без навороченной логики, где сразу переданные Вами данные проверяются, обрабатываются ышо что-то... 3) попросить примеры юзанья у производителя, где будут задействованы все типы данных... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 18:05 |
|
||
|
Не могу получить адрес функции в DLL
|
|||
|---|---|---|---|
|
#18+
Dima Tсработало GetProcAddress(hGate, " _call_sb_kernel ") Похоже на дельфи писано. Дальше хуже - инициализирую структуры с параметрами, вызываю - вылетает с исключением, но это уже наверно вопрос к тем кто эту GATE.DLL юзал :( Тут таких нет? При разработке своих dll пользуюсь тотал командером версии больше 6-ти. ;) А потому-что в нем есть плагин просмотра длл, в котором есть их имена. И дополнительными утилитами пользоваться нет необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 18:06 |
|
||
|
Не могу получить адрес функции в DLL
|
|||
|---|---|---|---|
|
#18+
Спасибо kolobok0. Похоже не те структуры в параметры подсунул буду дальше их доки изучать. Хоть бы самплес какой простенький сделали, а то структура, с указателем на другую структуру, там на третью ... крыша уже едет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 18:10 |
|
||
|
Не могу получить адрес функции в DLL
|
|||
|---|---|---|---|
|
#18+
Dima T вызываю - вылетает с исключением, Я так понял в параметрах ей передается указатель на функцию? Вы не забываете ее сделать __stdcall? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 18:10 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34035766&tid=2030358]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
136ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 448ms |

| 0 / 0 |
