Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
Вниз
Dll Найти похожие ветки
← →
matroskin © (2005-09-13 13:16) [0]Уважаемые мастера подскажите пожалуисто как ето
Private Declare Function extlib Lib "library.dll" Alias "EXTLIB" (ByVal N As String) As Integer
extlib ("Rabotat")
из бейсика перенести в делфи
Spasibo
← →
Ega23 © (2005-09-13 13:37) [1]function extLib(const N:String):Integer; exports "library.dll";
Вроде так. Только проблем будет - масса.
← →
Digitman © (2005-09-13 13:53) [2]
> Ega23 © (13.09.05 13:37) [1]
> проблем будет - масса
угу.
думаю, что как минимум - из-за отсутствия в соответствующей Паскаль-декларации stdcall-соглашения о вызове
Васик это неявно подразумевает.
Ну и еще одну проблему автору на уши вешаешь - const N:String
String в Васике и String в Паскале - две разные разницы.
function extlib(const N:PChar):Integer; exports "library.dll" name "Rabotat"; stdcall;
← →
Ega23 © (2005-09-13 14:05) [3]А в бейсике stdcall по-умолчанию?
Давно с ним дела не имел, лет 5 уже...
← →
Digitman © (2005-09-13 14:17) [4]
> Ega23 © (13.09.05 14:05) [3]
я - о Визуальном Васике в Мелкомягком Офисе ...
там - да, stdcall .. за другие не ручаюсь.
← →
isasa © (2005-09-13 15:58) [5]>я - о Визуальном Васике в Мелкомягком Офисе ...
тогда неправильно, надо
function extlib(const N:PChar):Smallint; exports "library.dll" name "Rabotat"; stdcall;
В офисном васике базовый тип integer - 16 bit
← →
Digitman © (2005-09-13 16:34) [6]
> В офисном васике базовый тип integer - 16 bit
с какого перепугу ?! под Win32-то тем паче ?
← →
begin...end © (2005-09-13 16:38) [7]
> Digitman © (13.09.05 16:34) [6]
Integer -- 16 бит, Long -- 32 бита.
← →
Digitman © (2005-09-13 16:45) [8]
> begin...end © (13.09.05 16:38) [7]
однако не факт, что ф-ция extlib возвращает именно 16-битный результат.
она вполне может возвращать и 32-битный рез-т, по диапазону фактически возвращаемых значений вполне корректно преобразуемый в 16-битный smallint (тот самый Integer из Васика)
да и какой дебил будет возвращать рез-т в ax (вместо eax, что стандартно) при данных условиях ?
← →
isasa © (2005-09-13 16:53) [9]
Private Declare Function extlib Lib "library.dll" Alias "EXTLIB" (ByVal N As String) As Integer
Сказано - возвратить знаковое целое 16 бит (если Офис васик) - остальное неточные науки. Танцы с бубнами.
← →
isasa © (2005-09-13 16:58) [10]Добавлю, работал с этим.
Цеплял DLL(сделаные в D). Номера с целыми (типа процессор все равно 32 - проскочим) не проходят.
Если в D integer, в васике - Long. Ну и соответственно.
← →
Digitman © (2005-09-13 17:13) [11]
> isasa © (13.09.05 16:53) [9]
хорошо, согласен.
← →
isasa © (2005-09-13 17:14) [12]:) еще бы!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.187 c