Не могу понять как use-ать CIPAddressCtrl::GetAddress.
Прошу помочь в постижении этой функции.
Как создавать CIPAddressCtrl объект и как его использовать.
Пожалуйста разъясните на примере как это работает от начала и до конца.
Re: Как использовать CIPAddressCtrl::GetAddress?
От:
Аноним
Дата:
24.07.02 06:21
Оценка:
Здравствуйте live7, Вы писали:
L>Не могу понять как use-ать CIPAddressCtrl::GetAddress. L>Прошу помочь в постижении этой функции. L>Как создавать CIPAddressCtrl объект и как его использовать. L>Пожалуйста разъясните на примере как это работает от начала и до конца.
L> :???:
Например, рисуешь на диалоше этот контрол, в класс-визарде создаешь для него мембер варайбл, а потом так например:
typedef unsigned BYTE;
BYTE fld[4];
int numberOfNonBlankFields = CIPAddressCtrl::GetAddress(&fld[0],&fld[1],&fld[2],&fld[3]);
}
а он мне
error C2665: 'GetAddress' : none of the 2 overloads can convert parameter 1 from
type 'unsigned int *'
Как Вы писали нужно создать CIPAddressCtrl objekt и чёто с им сделать..?.!.
Что нужно дописать в прогу чтобы получить IP в int....
Зараннее благодарю!!!
Re[3]: Как использовать CIPAddressCtrl::GetAddress?
Здравствуйте live7, Вы писали:
L>Спасибо, что кот-то откликнулся. L>Мне хотелось бы понять как получить IP в виде int
L>Я написал так
L>#include <iostream.h> L>#include <stdio.h> L>#include <afxcmn.h> L>void main( void ) L>{
L>typedef unsigned BYTE; L>BYTE fld[4]; L>int numberOfNonBlankFields = CIPAddressCtrl::GetAddress(&fld[0],&fld[1],&fld[2],&fld[3]);
L>}
L>а он мне
L>error C2665: 'GetAddress' : none of the 2 overloads can convert parameter 1 from L>type 'unsigned int *'
L>Как Вы писали нужно создать CIPAddressCtrl objekt и чёто с им сделать..?.!. L>Что нужно дописать в прогу чтобы получить IP в int.... L> Зараннее благодарю!!! L>
Что-то мне кажется ты не до конца ты понимаешь, что такое CIPAddressCtrl. Зачем ты пытаешься вызвать CIPAddressCtrl::GetAddress — это ведь не статическая функция класса? Ты случаем не пыташься таким образом преобразовать 4 байта из записи айпишника в инт?
Путь к сердцу женщины лежать не должен.
Re[4]: Как использовать CIPAddressCtrl::GetAddress?
Не буду прикидываться умным, но я действительно не доконца понимаю, что такое CIPAddressCtrl, вернее почти не понимаю.
Суть проблемы такова: Нужно получить IP aдрес в форме INT для дальнейшего использования, т.е. как-нибудь переслать IP в переменную.
Как это можно сделать?
MSDN тяжко понимается что куда и как,
но там написано, что GetAddress
Retrieves the address values for all four fields in the IP Address Control.
Как оно работает?...
Заранее спасибо...
Re[5]: Как использовать CIPAddressCtrl::GetAddress?
Здравствуйте live7, Вы писали:
L>Не буду прикидываться умным, но я действительно не доконца понимаю, что такое CIPAddressCtrl, вернее почти не понимаю. L>Суть проблемы такова: Нужно получить IP aдрес в форме INT для дальнейшего использования, т.е. как-нибудь переслать IP в переменную. L>Как это можно сделать? L>MSDN тяжко понимается что куда и как, L>но там написано, что GetAddress L>Retrieves the address values for all four fields in the IP Address Control. L>Как оно работает?... L>Заранее спасибо...
ОК, постараюсь объяснить.
CIPAddressCtrl — это класс из MFC, соответствующий контролу юзер-интерфейса IP address. Т.е. если у тебя есть хэндл такого контрола, то ты можешь "привязать" этот контрол к своему объекту класса CIPAddressCtrl. Тогда вызвав метод GetAddress ты получишь IP адрес из контрола либо в инт либо в четыре байта.
Насколько я понял у тебя есть какой-нить IP типа "192.168.0.1" и ты хочешь загнать это в инт, так?
Мне нужно IP в int (Лучше в массив из 4-х элементов), но я не умею работать с CIPAddressCtrl, т.е. не умею ни создавать, ни заполнять, ни.....
Надеюсь это только пока!
Yogi если не трудно покажи как получить IP в удобной форме (массив из 4-х элементов) может есть другие способы, более легкие
Re[7]: Как использовать CIPAddressCtrl::GetAddress?
Здравствуйте live7, Вы писали:
L>Понял все правильно.
L>Мне нужно IP в int (Лучше в массив из 4-х элементов), но я не умею работать с CIPAddressCtrl, т.е. не умею ни создавать, ни заполнять, ни..... L>Надеюсь это только пока! L>Yogi если не трудно покажи как получить IP в удобной форме (массив из 4-х элементов) может есть другие способы, более легкие L>
Блин, мне не трудно. Я только не пойму как ты его хочешь получить. Ты его хочешь у юзера запросить? Или он у тебя есть в виде строки? Или что?
Путь к сердцу женщины лежать не должен.
Re[8]: Как использовать CIPAddressCtrl::GetAddress?
Только не злись, понимаю с ламерами общаться тяжело.
Начнем с начала--> Есть комп, на нем запускаем это приложение (в котором будет возвращаться IP) и узнаем IP этой самой машины (на которой запускаем прогу)
Re[9]: Как использовать CIPAddressCtrl::GetAddress?
Здравствуйте live7, Вы писали:
L>Только не злись, понимаю с ламерами общаться тяжело. L>Начнем с начала--> Есть комп, на нем запускаем это приложение (в котором будет возвращаться IP) и узнаем IP этой самой машины (на которой запускаем прогу)
рулез!!! Типа, нужно узнать IP локальной машины, правильно я понял? Тогда почему вопрос про контрол IP Address В общем, про локальный IP тысячу раз пролетала инфа в форумах... Вот кусок кода:
WSADATA WSAData;
PHOSTENT p;
char Name[256] = {0};
WSAStartup(0x0101, &WSAData);
gethostname(Name, 255);
p = gethostbyname(Name);
DWORD IP = inet_addr( p->h_addr_list[0] ); // получаем первый IP (хотя их может быть много)
WSACleanup();
Вроде нигде в коде не ошибся
Re[10]: Как использовать CIPAddressCtrl::GetAddress?
Здравствуйте live7, Вы писали:
L> этоо круто так сразу, а есть стандартные функции для возврата IP локальной машины для VC++.
А чем приведенные мной нестандартные? Это вроде как winsock... Библиотечка есть в Виндах... В приведенном мною коде только две функции платформно-зависимы — это WSAStartup и WSACleanup. А остальное — да хоть под линухом... Единственное — код писал по памяти, поэтому и оговорился, что вроде нигде не ошибся
Re[12]: Как использовать CIPAddressCtrl::GetAddress?