Текущий архив: 2003.04.14;
Скачать: 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 вся ветка
Текущий архив: 2003.04.14;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.008 c