Вверх ↑
Ответов: 2059
Рейтинг: 132
#1: 2021-12-22 10:52:22 ЛС | профиль | цитата
envoy_sky, эти библиотеки сделаны в C++ и в CallDllEx их запихнуть нельзя. Для адаптации под delphi надо избавится от артефактов в названии функций _off@0=off таким образом:
function RiGetRenderWindow():Pointer; stdcall; external RiBox3D.dll name 'RiGetRenderWindow@0';
Вполне возможно, раз это C++ dll, вместо stdcall надо поставить cdecl, но это критично для функций. Просто это надо знать, какой интерфейс у функций, или методом тыка. В твоём случае не критично, у тебя процедуры.
HiAsm я снёс, по этому нарисовал IC по памяти и проверить не могу. Должно работать.
unit HiAsmUnit;

interface

uses kol,Share,Debug;

type
THiAsmClass = class(TDebug)
private

public
onFanon: THI_Event;
onFanoff: THI_Event;

Procedure doFanOn(var _Data:TData; Index:Word);
Procedure doFanOff(var _Data:TData; Index:Word);
end;
Procedure on(); stdcall; external AcerFanControlLib.dll name '_on@0';
Procedure off(); stdcall; external AcerFanControlLib.dll name '_off@0';

implementation

Procedure THiAsmClass.doFanOn;
begin
on;
_hi_OnEvent(onFanon,'Yes') ;
end;

Procedure THiAsmClass.doFanOff;
begin
off;
_hi_OnEvent(onFanoff,'Yes') ;
end;
end.
карма: 6

0
Редактировалось 3 раз(а), последний 2021-12-22 11:20:06