как передать параметры при вызове функций из DLL
function NetScheduleJobAdd (var Servername:LPWSTR; var Buffer:LPBYTE; var JobId:LPDWORD):NET_API_STATUS; external 'netapi32.dll';
//это переменные
var MYJOB : AT_INFO;
MYJID : DWORD;
ATRES : NET_API_STATUS;
server: array [0..255] of WideChar;
cmd: array [0..1023] of WideChar;
...
тут чёта делаю
...
//это вызов
ATRES:=NetScheduleJobAdd (@server, @MYJOB, @MYJID);
пишет "Types of actual and fromal parameters must be identical"
как ему объяснить, что я передаю то, что нужно?
type
(* это "сишное" описание
typedef struct _AT_INFO {
DWORD_PTR JobTime;
DWORD DaysOfMonth;
UCHAR DaysOfWeek;
UCHAR Flags;
LPWSTR Command;
} AT_INFO, *PAT_INFO, *LPAT_INFO;
конец *)
_AT_INFO = PACKED record
JobTime: DWORD;
DaysOfMonth:DWORD;
DaysOfWeek: UCHAR;
Flags: UCHAR;
Command: LPWSTR;
end;
AT_INFO = _AT_INFO;
PAT_INFO = ^AT_INFO;
LPAT_INFO = ^AT_INFO;
PACKED писать не надо в строке PACKED record
компилятор всю структуру заоптимизировал так,
что сишная дээлэлина ничего не поняла :]]]