Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: 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 вся ветка

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
3-1143373341
anubis
2006-03-26 15:42
2006.05.21
Програмноя Установка пути к базе


2-1146338578
NEchto
2006-04-29 23:22
2006.05.21
Названия файлов


2-1146410252
Kano
2006-04-30 19:17
2006.05.21
Ошибка при выполнении Insert


15-1145120090
Mozart
2006-04-15 20:54
2006.05.21
Первичный ключ


6-1137789560
GuAV
2006-01-20 23:39
2006.05.21
Можно ли закрыть listen socket при работающих accepted ?