Эдик писал(а):
мне нужен код который будет компеллироваться в Дельфи 6, а не в HiAsm.Ответ вполне ожидаемый. Эдик, это ж пример

Изменить три строки и немного copy/paste из share.pas и всё работает:
#pas
program ProjectX;
uses
Windows, KOL;
type
PData = ^TData;
TData = record
Data_type: byte;
idata: integer;
sdata: string;
rdata: real;
Next, ldata: pointer;
end;
type
T_hi_dllInitProc = procedure(var _Data: TData; Index:word; DLL_Param:pointer);
T_hi_dllProc = procedure(var Data:TData; Index:word;_Param:pointer);
T_hi_DllInit = procedure(_onEvent,GetData:T_hi_dllProc; _Param:pointer; var DLL_Param:pointer);
procedure dll_Event(var _Data: TData; Index:word; Param:pointer);
begin
ShowMessage('[Input] Index: ' + int2str(Index) + ' , data: ' + _Data.sdata);
end;
procedure dll_Data(var _Data:TData; Index:word; Param:pointer);
begin end;
procedure doSomething(const DllName: string);
var
dll: cardinal;
InitProc: T_hi_DllInit;
p: pointer;
DoWork: T_hi_dllInitProc;
FData: TData;
s, dllfile: string;
begin
dllfile := DllName; //ReadString(_Data, DllName, '');
s := '<<<!!!TEXT!!!>>>'; //ReadString(_Data, Text, '');
FillChar(FData, SizeOf(FData), 0);
FData.data_type := 2{data_str};
FData.sdata := s; // _DoData(s);
dll := LoadLibrary(PChar(dllfile));
if dll = 0 then exit;
InitProc := GetProcAddress(dll,'_hi_DllInit');
if Assigned(InitProc) then
begin
InitProc(dll_Event, dll_Data, nil, p);
@DoWork := GetProcAddress(dll, '_hi_doWork');
if Assigned(doWork) then DoWork(FData, 0, p);
end;
FreeLibrary(dll);
end;
begin
doSomething('project1.dll');
end.
Почему слова program и uses в коде жирным не выделяются?
Opera 9