![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Ryoga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 20.9.2005 Репутация: нет Всего: 6 |
Собственно вопрос. Есть библиотека написанная на Дельфи. Там функция, объявленная как safecall. Так вот, как мне её в своей сишной программе объявить, чтобы её можно было использовать? Какой модификатор применять?
З.Ы.: Слегка ошибся. Там не dll, а Lib. Это сообщение отредактировал(а) Ryoga - 31.8.2007, 17:19 |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
найди 8 отличий от stdcall-а... (по беглому осмотру я не нашел (в смысле вызова)).... Это сообщение отредактировал(а) jonie - 31.8.2007, 21:01 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Ryoga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 20.9.2005 Репутация: нет Всего: 6 |
Хмм, вроде пробовал stdcall, всё равно ошибку выдаёт... может не в том дело...
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
мы тоже не умеем гадать ..... ищи где ошибки и т.д. т.п.... может кто-что еще подскажет (я лично не вижу особо что подсказат более)...
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| HappyLife |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: нет Всего: 8 |
Заюзай tdump
|
|||
|
||||
| Ryoga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 20.9.2005 Репутация: нет Всего: 6 |
tdump - это что?
Ошибка так и вылетает. Приложил рисунок. ESP - это что, вообще? Присоединённый файл ( Кол-во скачиваний: 16 )
error_safecall.jpg 23,43 Kb |
|||
|
||||
| jonie |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
ESP это регистр... обычно указывает на вершину стека 8)
у тебя порушен стек (указатель ESP стоит не там где должен(?)) после вызова (или где-то в нутри вызываемой функции).
Бери дизасемблер в руки и смотри фигли... может параметров "недобрал", можетчего накуртил нето... пометить как __stdcall не забыл ?..... на крайний слуай сделай оберку свою на ассемблеры для вызова. нечто вроде
Это сообщение отредактировал(а) jonie - 4.9.2007, 17:46 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
| Ryoga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 20.9.2005 Репутация: нет Всего: 6 |
Да, всё пометил.
Это то, что написано "Clean-up Routine"? А как понять "вызаваемый"? Т.е. в функции нужно самому что-то прописать? Или эта инструкция заставлет компилятор автоматически генерировать какие-то инструкции к функции, которая в библиотеке? |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
вызываемый - значит тот кого вызывают)
т.е. например так уравнивает стек вызываемый (x86)
т.е. стек уравнивает вызванная функция.... ---- в общем БЕРИ дебаггер и удачи .... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Ryoga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 20.9.2005 Репутация: нет Всего: 6 |
Ладно, спасибо. По-любому на мой вопрос ответ получен, так что, помечу, как решённый. И буду дебаггерить.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |