![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| weiss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 13.2.2003 Где: Yekat Репутация: нет Всего: нет |
//это объявление
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" как ему объяснить, что я передаю то, что нужно? |
|||
|
||||
| SmaLL |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
1. В описании параметров функции убери VAR, LPBYTE - это тот же Pointer, т.е. должно быть так:
2. Объявление server лучше поменять на
Так будет проще присваивать ему строку, например
Это сообщение отредактировал(а) SmaLL - 14.2.2003, 00:52 -------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
||||||||
|
|||||||||
| Unregistered |
|
|||
|
Unregistered |
Нельзя передавать адреса переменных как var параметры. Странновато определение этой экспортной функции - обычно имеет место передача указателей, а не адресов указателей.
|
|||
|
||||
| SmaLL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
Описание правильное, в хелпе WinAPI так и написано, любит Билл брать адреса указателей -------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Если dll используется как OLE сервер автоматизации, то сначало надо создать переменную типа variant, затем используя ф-цию CreateOleObject создается объект и присваевается этой переменной
такой сервер существует только в текущем модуле и из др. модулей недоступен. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| weiss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 13.2.2003 Где: Yekat Репутация: нет Всего: нет |
Нифига, мужики. Можно с варами а можно и без них, вот так:
function NetScheduleJobAdd (var Servername: WideString; var Buffer:BYTE; var JobId:DWORD):NET_API_STATUS; stdcall; external 'netapi32.dll'; или function NetScheduleJobAdd (Servername: LPWSTR; Buffer:LPBYTE; JobId:LPDWORD):NET_API_STATUS; stdcall; external 'netapi32.dll'; а ошибка была в объявлении: 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; DaysOfMonthWORD; DaysOfWeek: UCHAR; Flags: UCHAR; Command: LPWSTR; end; AT_INFO = _AT_INFO; PAT_INFO = ^AT_INFO; LPAT_INFO = ^AT_INFO; PACKED писать не надо было в строке PACKED record |
|||
|
||||
| weiss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 13.2.2003 Где: Yekat Репутация: нет Всего: нет |
теперь всё работает, всем спасибо за внимание.
|
|||
|
||||
| Fantasist |
|
||||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Можно. Но передать адрес как var параметр все равно ты не можешь, потому как адрес не является переменной. То есть это не откомпилируется:
Это сообщение отредактировал(а) Fantasist - 18.2.2003, 05:56 -------------------- Волны гасят ветер... |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |