![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
При вызове функции из 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]
> дает ошибку
Какую ?