Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Внизвызываю дельфовый длл из VB Найти похожие ветки
← →
Pavels (2003-11-30 22:45) [0]проблема с передачей параметров
длл из клиена на дельфе чисто глако пашет
из ВБ проблема
подскажите что и как
коде:
дельфа
function GetPage(mUrl:String):Boolean;
ВБ
Declare Ansi Function GetPage Lib "google.dll" (ByVal sURL As String) As Boolean
← →
Pavels (2003-11-30 22:50) [1]когда отлаживал
догадываюсь что VB
передает
в WideString
только вот
проблема
как мне это побороть у себя ??
← →
Slym (2003-12-01 04:47) [2]function GetPage(mUrl:String):Boolean; -> не пашет!!!
function GetPage(mUrl:PChar):LongBool;
← →
Юрий Зотов (2003-12-01 07:47) [3]Четыреста восемьдесят третий...
> Pavels
Когда Вы создавали проект новой DLL, то Delphi вставила в заготовку кода здоровенный комментарий. Как Вы думаете, она его вставила для Вас, или для дяди Пети? Для того, чтобы Вы его прочли, или для того, чтобы Вы его стерли, не читая?
Прочтите. И еще прочтите про ShareMem в справке. А потом переделайте string на PChar.
← →
Pavels (2003-12-01 09:24) [4]переделал
непомоло
может руки кривые подскажите в чем проблема
← →
Юрий Зотов (2003-12-01 09:28) [5]Стандартные проблемы - не выделена память, или выделена не там, или не там освобождена, или не освобождена вовсе. Нужно видеть код.
← →
Digitman (2003-12-01 09:36) [6]function GetPage(mUrl:PChar):LongBool; stdcall;
как минимум, соглашение о вызове д.б. соблюдено
и + < Юрий Зотов © (01.12.03 09:28) [5] >
← →
Pavels (2003-12-01 09:38) [7]все ...
спасибо все
работает
← →
REA (2003-12-01 10:43) [8]Имеет смысл использовать COM - несколько сложнее, но предназначено именно для взаимодействия программ на разных языках (многопоточности и устранения других проблем).
Хотя тут наверно и DLL достаточно.
PS: брось ты его, этот бэйсик ;)
← →
Pavels (2003-12-01 12:37) [9]вообщем невсе так ладно как показалось
проблема с передачей строки назад
в VB прилоджение
так все работает
function GetPage(mUrl:PChar; TimeOut:Integer):Boolean; safecall;
Declare Ansi Function GetPage Lib "google.dll" (ByVal sURL As String, ByVal TimeOut As Integer) As Boolean
пытаюсь вернуть/принять строку
все
external error
← →
Digitman (2003-12-01 12:43) [10]ээ ... а где из вышеупомянутой тобой декларации видно, что ты нечто строковое ожидаешь от вызываемой ф-ции как рез-т ее работы ?
← →
Pavels (2003-12-01 12:48) [11]если вместо Boolean стоит String
все
я показал как у меня работает
← →
Digitman (2003-12-01 12:54) [12]
> Pavels
> если вместо Boolean стоит String
брось эту затею, работать это не будет
передавай ByVal-факт.параметром строку заранее установленной длины, и DLL ее просто заполнит нужными стр.данными длиной не более чем выделенной в выз.коде
не нравится ? переделывай DLL во внутренний OLE/COM-сервер автоматизации, тогда строковый рез-т будет позволительно возвращать в виде OleVariant как результат вызова соотв.метода сервера
← →
Юрий Зотов (2003-12-01 12:55) [13]Почему safecall?
Где и как выделяется память под mURL?
Где и как она освобождается?
← →
Romkin (2003-12-01 13:01) [14]Бррр... Как уже посоветовали, делайте элементарный Automation Object в этой dll. Это позволяет избежать подобных проблем. а в VB просто: set Obj = CreateObject(...) и пользовать, пользовать
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c