Вниз
Скачать: CL | DM;

При вызове функции из dll дает ошибку   Найти похожие ветки 

 
De   (2006-05-04 12:29) [0]

Привет, 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 12:36) [1]


> дает ошибку


Какую ?


 
Elen ©   (2006-05-04 12:40) [2]

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

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

exports my_init;

Begin

end.


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

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

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


 
Elen ©   (2006-05-04 12:52) [4]

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


 
Desdechado ©   (2006-05-04 12:55) [5]

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


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

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

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


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

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


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

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

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


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


> нету текста


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

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


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


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


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


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


> Desdechado ©  


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


Не нужен.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
3-1143485761
beglec
2006-03-27 22:56
2006.05.21
Как узнать сколько индексов у таблицы? Paradox.


2-1146661404
AlexanderMS
2006-05-03 17:03
2006.05.21
Проблема с ListBox


15-1145872467
xayam
2006-04-24 13:54
2006.05.21
Почему программисты не хотят структурировать код?


15-1146061971
Yanis
2006-04-26 18:32
2006.05.21
Может и баян, но улыбнуло


15-1146022327
Vitaliy
2006-04-26 07:32
2006.05.21
TTryIcon




   Наверх