Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как передать параметры при вызове функций из DLL

2.5K
13 февраля 2003 года
weiss
21 / / 10.02.2003
//это объявление
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"
как ему объяснить, что я передаю то, что нужно?
2.5K
13 февраля 2003 года
weiss
21 / / 10.02.2003
ошибка была в объявлении:
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
компилятор всю структуру заоптимизировал так,
что сишная дээлэлина ничего не поняла :]]]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог