
computer/C++ : 글 13개
- 2010/05/26 이차원배열 동적할당 및 포인터 얘기
- 2010/05/26 IP주소 (string -> ulong) 변환
- 2009/12/20 다이얼로그 아무데나 클릭하면 이동할수 있게 하려면


IP주소 변환
1. #include <arpa/inet.h> 가 필요함
2. ulong srcip;
3. inet_pton(AF_INET, "192.168.0.0", (void*)&srcip);
4. printf(srcip)
결과 : 3232235520이 나와야 하지만,
그렇지 않다...
왜냐...inet_pton은 ip스트링을 숫자로 변환하지만
network byte order를 따르기 때문에
반대로 저장이 된다...
말인 즉슨
0.0.168.192를 변환한것과 같은 값이 나온다..이거임
5. srcip = htonl(srcip);
로 하면 제대로 3232235520이 나온다.
htonl은 host to network order로 변환해주는 함수인데
host to network 나 network to host나 어차피 바이트 순서만 바꿔주는거니까 같다고 보면 될듯..
하지만 실제로 코딩할대는 순서가 헷갈리니까 목적에 맞는 함수를 써주자...
참고용으로 문자열을 숫자로 변환해주는 프로그램을 첨부함 소스는 어디있는지 까먹어서 ...
사용법 : 첫번째 칸에 192.168.0.0 과 같이 ip주소를 넣고 button을 클릭


void CngssDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));
CDialog::OnLButtonDown(nFlags, point);
}
