Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IP Address не выходит! Как IP Address разбить на части? 
:(
    Опции темы
Edik
Дата 3.5.2007, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

Репутация: -1
Всего: 1



Вот у меня есть код:
Код

void CIPAddressDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    char szIPAddress[40];
    int iIPAddress;
    HWND hIPAddress;
    long int * pdwAddress;

    GetDlgItemText(IDC_IPADDRESS1,szIPAddress,40);
    SetDlgItemText(IDC_EDIT1,szIPAddress);
    
    //GetDlgItem(IDC_IPADDRESS1, &hIPAddress);
    SendMessage(IPM_GETADDRESS,0,(LPARAM)(LPDWORD)&pdwAddress);
                
    iIPAddress=FIRST_IPADDRESS((LPARAM)pdwAddress);
    itoa(iIPAddress,szIPAddress,10);
    SetDlgItemText(IDC_EDIT2,szIPAddress);
    
    iIPAddress=SECOND_IPADDRESS((LPARAM)pdwAddress);
    itoa(iIPAddress,szIPAddress,10);
    SetDlgItemText(IDC_EDIT3,szIPAddress);
            
    iIPAddress=THIRD_IPADDRESS((LPARAM)pdwAddress);
    itoa(iIPAddress,szIPAddress,10);
    SetDlgItemText(IDC_EDIT4,szIPAddress);
                
    iIPAddress=FOURTH_IPADDRESS((LPARAM)pdwAddress);
    itoa(iIPAddress,szIPAddress,10);
    SetDlgItemText(IDC_EDIT5,szIPAddress);
}

который конечно же не работает. Во всех четырех последних EDIT - ах выводит одно и тоже число, не зависимо от IP адреса, введенного в поле IP Address. Я эту прогу взял из своего примерчика по WinAPI- раньше изучал. Как переделать из WinAPI в MFC?
PM MAIL   Вверх
SenkraD
Дата 3.5.2007, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 4
Всего: 23



Чем те методы CIPaddressCtrl не понравились (ты же вродь его используеш)
Код

Retrieves the address values for all four fields in the IP Address Control.    
    
int GetAddress(    
   BYTE& nField0,    
   BYTE& nField1,    
   BYTE& nField2,    
   BYTE& nField3    
);    
int GetAddress(    
   DWORD& dwAddress    
);    
    
Parameters    
nField0    
A reference to the field 0 value from a packed IP address.    
nField1    
A reference to the field 1 value from a packed IP address.    
nField2    
A reference to the field 2 value from a packed IP address.    
nField3    
A reference to the field 3 value from a packed IP address.    
dwAddress    
A reference to the address of a DWORD value that receives the IP address. See Remarks for a table that shows how dwAddress is filled.    



--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Edik
Дата 3.5.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

Репутация: -1
Всего: 1



Так извини- я новичек, не врубился, как этот код, что ты дал, включить в программу. Что такое DWORD& dwAddress и где его взять. А потом те nField, что они дают? Где результат можно увидеть отдельного nField&
PM MAIL   Вверх
Edik
Дата 3.5.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

Репутация: -1
Всего: 1



Причем, как я прочитал в MSDN эта функция GetAddress просто возвращает число непустых полей IP адреса. А мне надо их значения.
PM MAIL   Вверх
SenkraD
Дата 3.5.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 4
Всего: 23



Edik,  как ты видиш параметры nField0, nField1, nField2, nField4 передаются по ссылке тоесть в них запишутся значения.

Код

BYTE nField0;
BYTE nField1;
BYTE nField2;
BYTE nField3;

int i =  GetAddress(nField0, nField1, nField2, nField3);

CString str;
str.Format("Non empty fields count %d\r\n1 part -  %d\r\n2 part -  %d\r\n3 part -  %d\r\n4 part -  %d",
    i, nField0, nField1, nField2, nField3);
AfxMessageBox(str);


P.S. Кажись так было


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Damarus
Дата 3.5.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: 6
Всего: 29



Цитата(Edik @  3.5.2007,  14:31 Найти цитируемый пост)
Причем, как я прочитал в MSDN эта функция GetAddress просто возвращает число непустых полей IP адреса. А мне надо их значения. 

Где такое в MSDN написано?
PM MAIL ICQ Jabber   Вверх
Edik
Дата 6.5.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

Репутация: -1
Всего: 1



Пасиба пацануха!!! Получилось!!! Я просто счастлив до смерти!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0985 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.