![]() |
#1 |
Участник
|
![]()
Доброго всем времени суток
есть DLL с заголовком на С. Требуется произвести вызов из аксапты. Проблема в том, что не работает. На С прототип выглядит так: Код: ISC_STATUS ISC_EXPORT isc_attach_database (ISC_STATUS ISC_FAR *, short, char ISC_FAR *, isc_db_handle ISC_FAR *, short, char ISC_FAR *); Код: isc_attach_database = new DllFunction(GDS32, "isc_attach_database"); isc_attach_database.returns(ExtTypes::DWord); isc_attach_database.arg(ExtTypes::Pointer, ExtTypes::Word, ExtTypes::String, ExtTypes::Pointer, ExtTypes::Word, ExtTypes::String); Код: isc_db_handle DB; ISC_STATUS status_vector[20]; short dpb_buf_len=20; char dpb_buf[]={ isc_dpb_version1, //версия буфера isc_dpb_user_name, //начинается кластер параметра имя пользователя 6, //длина этого параметра 6 байт 'S','Y','S','D','B','A', //строка имени пользователя isc_dpb_password, //начинается кластер пароля пользователя 9, //длина его 9 байт 'm','a','s','t','e','r','k','e','y' //сам пароль }; isc_attach_database(status_vector, strlen(str), str, &DB,dpb_buf_len,dpb_buf)); Подскажите, плз, в чем грабли... ![]() |
|