16 / 16 / 0
Регистрация: 13.11.2009
Сообщений: 69
|
||||||
1 | ||||||
FASM Вызываю dll (написанную на vc++2008) из Fasm. Через 40 секунд вылет из программы.Без вызова dll из Fasm программа не вылетает.16.03.2011, 19:35. Показов 2361. Ответов 1
Метки нет (Все метки)
Программа на vc++2008:
invoke MyFunc,0,0 и в цикле пока не нажмем ESCAPE. Точно знаю что библиотека подключается и вызываеться(делал в vc++2008 dll MessageBox). Вызов из Fasm выводит этот MessageBox. Если не делаю в Fasme invoke MyFunc,0,0 то нет вылетов. Добавлено через 2 минуты Может ли переполняться стек. И из-за этого вылетает. Смотрел Debugerom когда вызываеться invoke MyFunc,0,0 то esp уменьшаеться на 8 (так как делаеться 2 push при вызове invoke ).И так каждый раз после вызова esp становиться меньше на 8.
0
|
16.03.2011, 19:35 | |
Ответы с готовыми решениями:
1
Fasm dll Пишем DLL на FASM'e передача параметров dll fasm Как воспроизводить dll-файлы и код их чтения на отладчике xdbg? (FASM) |
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
|
|||||||||||
17.03.2011, 11:13 | 2 | ||||||||||
ronniko, во первых ты вызываешь функцию с соглашением вызова __cdecl, соответственно стек должен чистить вручную, либо использовать cinvoke вместо invoke (или лучше ccall)
Во вторых ты не верно передаешь параметры в функцию. Так как у тебя отсутствует тело функции то ты не заметишь разницы, но если появится, то будет ошибка. ты передаешь таким образом тока первый параметр, т.к. double 8 байт. Вот код:
Добавлено через 1 час 22 минуты можно проще
1
|
17.03.2011, 11:13 | |
17.03.2011, 11:13 | |
Помогаю со студенческими работами здесь
2
Обсуждение статьи "Пишем DLL на FASM'e" Как подключить dll, написанную на C, к dll на Delphi Visual Basic вылетает с ошибкой при попытке вызова функции из DLL Можно ли из ASP как-то вызвать dll, чтобы результат её (dll) работы вставился в место вызова? Вызываю функцию из dll, программа "падает" Слетели библиотеки .dll При запуске любых приложений на компьютере вылетает ошибка с расширением .dll Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |