Показать сообщение отдельно
Старый 27.04.2006, 12:35   #1  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
:( Help! DLL описание функции в аксапте
Доброго всем времени суток
есть 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));
Запускается, но не работает в аксапте. выдает код, означающий Invalid DB handle. Другие ф-ии из этой же DLL работают нормально. Под С все работает.... %(

Подскажите, плз, в чем грабли...