Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Вниз

При вызове функции из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.015 c
3-1143612605
Ярослав
2006-03-29 10:10
2006.05.21
Соединение таблиц многие к одним


8-1135579295
WondeRu
2005-12-26 09:41
2006.05.21
Улыбнемся ;)


4-1140715947
spyrytus
2006-02-23 20:32
2006.05.21
INT 16h


2-1147003224
Интересующийся
2006-05-07 16:00
2006.05.21
Delphi и 64-бита


15-1146209866
xayam
2006-04-28 11:37
2006.05.21
ДА НЕ ВЕРЯТ - ЭТО ПРАВДА, но не моя





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский