Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

При вызове функции из dll дает ошибку [D5]


De ©   (2006-05-04 12:29:00) 

Привет, All!
есть стороняя dll
требуется написать свою dll которая вызвает функции из сторонней

...
function Init(a: WideString; b: Integer): Integer; stdcall; external 'other.dll';
{$R *.RES}

function my_Init(a: WideString; b: Integer): Integer; stdcall; export;
begin
 Init(a, b);
end;
...

если из exe вызвается стороняя функция на прямую, все работает, если вызвается моя, функция дает ошибку, почему?
P.S.
передаваемые параметры одинаковые


Гаврила   (2006-05-04 15:14:00) [1]


> Desdechado ©  


> точно WideString нужно передавать? может, там все-таки
>указатель?
> а то ведь ShareMem нужен


Не нужен.


Сергей М.   (2006-05-04 13:03:00) [2]


> написана на delphi (хотя не уверен, узнать не реально


Абсолютно реально.


Сергей М.   (2006-05-04 13:01:00) [3]


> нету текста


Так не бывает.

Приводи дословновсе что видишь на экране : это, мол, вижу в compile-time, это, мол, - в run-time


Elen   (2006-05-04 13:00:00) [4]

С чего ты взял что не 0 это ошибка? это где-то описано? null
Ну попробуй еще так

function my_Init(a: WideString; b: Integer): Integer;
begin
result:=Init(a, b);
end


De   (2006-05-04 12:58:00) [5]

>Desdechado
написана на delphi (хотя не уверен, узнать не реально :( )
содержимое строки передалось нормально (в своем вызове лог ввел)


De   (2006-05-04 12:56:00) [6]

да нету текста
если вызываю функцию на прямую возращает 0 (типа все OK)
если вызываю через свою функцию возращает <>0 (типа ошибка)

в чем разница этих двух вызовов понят не могу, передаваемые параметры идентичны :(


Desdechado   (2006-05-04 12:55:00) [7]

на чем написана other.dll ?
точно WideString нужно передавать? может, там все-таки указатель?
а то ведь ShareMem нужен


Elen   (2006-05-04 12:52:00) [8]

Приведи текст ошибки


De   (2006-05-04 12:46:00) [9]

>Elen
все сделано как у Вас реакция та же

ошибка внутренняя, всмысле функция действует по разному (это коннект в БД) в случае с родной функцией коннект создается в случае с моей оболочкой коннекта нет :(
почему понять не могу, ещё повторю что передаваемые параметры одинаковые


Elen   (2006-05-04 12:40:00) [10]

Привет De.
попробуй в своей ДЛЛ прописать этот код
мне кажется ты неправильно обьявил свою функцию.
И вообще что за ошибку выдает и на каком этапе?

function my_Init(a: WideString; b: Integer): Integer;
begin
Init(a, b);
end

exports my_init;

Begin

end.


Сергей М.   (2006-05-04 12:36:00) [11]


> дает ошибку


Какую ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо