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

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 вся ветка

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



Память: 0.47 MB
Время: 0.036 c
1-1126443042
kolya.nn
2005-09-11 16:50
2005.10.02
Звук в Windows


1-1125945109
solenko
2005-09-05 22:31
2005.10.02
Чтение из реестра REG_MULTI_SZ


1-1126014295
NikNet
2005-09-06 17:44
2005.10.02
Чем отличаются виртуальные и простые методы?


1-1126431177
The Only
2005-09-11 13:32
2005.10.02
Status Bar на меню


2-1124490678
TStas
2005-08-20 02:31
2005.10.02
Русский текс на компьютере с языком по умолчанию английский.




   Наверх