소프트웨어/Socket

Winsock 프로그래밍 연습 - 11 : Microsoft ICMP API 를 이용한 Ping 프로그램

카켈 2007. 5. 14. 16:07
코드 출처
http://www.sockaddr.com/ExampleSourceCode.html

코드 받기
원본


수정된 코드


수정 내용
CPP 에 맞게 수정
한글화

주의 사항
원래 코드 파일인 C로는 컴파일되는 코드지만 CPP 로 하면 안되는 부분이 있습니다.
GetProcAddress 와 FreeLibrary 인 곳인데, 첫번째 인수가 struct HISTANCE 형이여야 합니다. C 코드는 그냥 void 포인터로 넣어도 문제가 없는데 CPP 에서는 형검사(타입 체킹)을 하기 때문에 문제가 발생합니다.

cannot convert parameter 1 from 'void *' to 'struct HINSTANCE__ *'

(HISTANCE)를 붙여서 강제 형변환(type-casting)을 하면 해결할수 있습니다.
GetProcAddress(hndlIcmp, "IcmpCreateFile"); -> GetProcAddress((HINSTANCE)hndlIcmp, "IcmpCreateFile");
FreeLibrary(hndlIcmp); -> FreeLibrary((HINSTANCE)hndlIcmp);

C 에서는 문제가 없습니다.

실행 화면

코드 내용