Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2007-07-23 22:30:23 ЛС | профиль | цитата
hiasm dll экспортирует три ф-ции:
procedure _hi_DllInit(_onEvent,GetData:T_hi_dllProc; _Param:pointer; var DLL_Param:pointer)
procedure _hi_doWork(var _Data:TData; Index:word; DLL_Param:pointer);
procedure _hi_GetVar(var _Data:TData; Index:word; DLL_Param:pointer);

_hi_DllInit - нужно предать указатели на свои обработчики _onEvent и GetData, передать указатель на класс, из которого используется dll в _Param и сохранить где-то указатель из DLL_Param.

в _hi_doWork и _hi_GetVar последним параметров всегда передается значение, сохраненное ранее из DLL_Param.

в обработчики _onEvent и GetData последним параметром передается указатель из _Param.

пример использования см. в hiUseHiDLL.pas

еще одна маленькая проблемка: hiasm dll использует для передачи аргументов Pascal тип. Сделать такой в С скорей всего не выдет(ни разу не встречал такого без использования ASM). Поэтому сначало нужно написать соответствующий шлюз, который будет делать конвертацию из Pascal скажем в cdecl
карма: 27
0