Шаг 5 - Устанавливаем соединение

Создание проекта

Поменяем код в старом.

Внимание этот пример максимально упрощен и показывает функцию соединения. Поэтому он работает не всегда. Например, у меня два типа соединения, а связь устанавливается для указанного по умолчанию в реестре.

Создаем код

#include "windows.h"
#include "ras.h"
#include "iostream.h"
#include "conio.h"

void main()
{
	HRASCONN hrascon=NULL;
	RASDIALPARAMS rc[1];
	rc[0].dwSize = sizeof(RASDIALPARAMS);
	GetPrivateProfileString("Ras","EntryName","not ready",rc[0].szEntryName,99,"Ras.ini");
	GetPrivateProfileString("Ras","Phone","not ready",rc[0].szPhoneNumber,99,"Ras.ini");
	GetPrivateProfileString("Ras","UserName","not ready",rc[0].szUserName,99,"Ras.ini");
	GetPrivateProfileString("Ras","Password","not ready",rc[0].szPassword,99,"Ras.ini");
	strcpy(rc[0].szDomain,"");
	cout << rc[0].szEntryName << endl;
	if (RasDial(NULL,NULL,rc,NULL,NULL,&hrascon)==0)
	{
		cout << "RasDial Run " << endl;
		cout << hrascon << endl;
	}
	cout << "Pess key" << endl;
	getch();
}

Описание

Для задания параметров я использовал INI файл. Если вы незнакомы с работой с ним, прочитайте шаги по использованию INI файлов.

Вот такой он у меня. Только вместо пароля я постаил звездочки. Но это провайдер просил :-).

[Ras]
EntryName=Jana
Phone=20507
UserName=******
Password=*********

Ну, а дальше всё похоже. HRASCONN идентификатор соединения. Если оно будет установлено, то в него поместится число. RASDIALPARAMS - массив структур с информацией о точке входа и соединении.

Дальше мы вызываем функцию RasDial. Там где стоят NULL параметры не используются, либо нам не нужны. Эта функция выдает результат своего выполнения. Например, если линия занята, то функция не выполнится.

Ну чтож компилируйте, настраивайте INI и запускайте. Если у Вас несколько соединений, то попробуйте все. Всё будет происходит несколько непривычно. Ничего кроме терминала не появится.

Шпаргалка

Создайте идентификатор соединения:

HRASCONN hrascon=NULL;

И массив информации:

RASDIALPARAMS rc[1];

Заполните параметры и вызовите RasDial():

if (RasDial(NULL,NULL,rc,NULL,NULL,&hrascon)==0)
{
	......
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 20.09.99