Вниз
Скачать: CL | DM;

Variable required   Найти похожие ветки 

 
Jel ©   (2003-04-01 11:11) [0]

Помогите люди добрые. Крыша медленно съезжает :(

Пишу.

function TForm1.Connect(EntryName, User, Password: string) : integer;
var RDP : TRasDialParams;
HRasCon : THRasConn;
begin
ZeroMemory(@RDP, SizeOf(RDP));
RDP.dwSize := SizeOf(RDP);
Move(EntryName[1], RDP.szEntryName, Length(EntryName));
Move(User[1], RDP.szUserName, Length(User));
Move(Password[1], RDP.szPassword, Length(Password));
HRasCon := 0;
Dial_Done := false;
RasDial(nil, nil, RDP, 0, @RasDialCallBack, HRasCon);
// ^ Пишет ошибка здесь
repeat Application.ProcessMessages until Dial_Done;
Result := HRasCon;
end;

procedure TForm1.RasDialCallBack(MSG: integer; State: TRasConnState; Error: Integer); stdcall;
begin
Dial_Done := (State >= RASCS_DONE) or (Error <> 0);
Memo1.Lines.Add(format("Dial state %d, error code %d",[State, Error]));
end;


Компилятор ругается - Variable required и показывает на строку с коментарием. А чем ему HRasCon не variable?

Функция описана так :


function RasDial(
lpRasDialExt: LPRasDialExtensions;
lpszPhoneBook: PChar;
var params: TRasDialParams;
dwNotifierType: Longint;
lpNotifier: Pointer;
var rasconn: THRasConn
): Longint; stdcall;


Подскажите, плиз - где грабли-то?


 
icWasya ©   (2003-04-01 11:54) [1]

У тебя RasDialCallBack - это метод и просто привести указатель на метод к простому указателю нельзя.


 
Anatoly Podgoretsky ©   (2003-04-01 12:02) [2]

Привести можно, только работать не будет, несовпадение количества параметров и соглашения о вызове.


 
Jel ©   (2003-04-01 12:06) [3]

Понял, спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.017 c
6-44320
Bosh
2003-02-20 10:42
2003.04.14
Проблеммы с FTP компонентом Indy


14-44440
Satirus
2003-03-29 13:32
2003.04.14
Меня вчера оштрафовали в трамвае


3-44054
Наташа
2003-03-26 09:28
2003.04.14
Связи между таблицами


6-44322
ККВ
2003-02-20 10:41
2003.04.14
Клиент для Novell


14-44449
Vlad Oshin
2003-03-17 12:42
2003.04.14
Воспоминания




   Наверх