코딩을 하고 디버깅을 하려는데..
warning : 'AF_IPX' 매크로 재정의
같은 warning 및 error가 엄청나게 뿜어져나왔다.
찾아보니 windows.h와 winsock.h가 충돌이 나면서 나오는 경고및 에러라고 한다.
sbspace 님의 블로그 에서 유용한 정보가 있어서 퍼왔다.
충돌이 나는 이유는 windows.h에 winsock.h (구번젼의 winsock) 이 포함되어
재정의 되었다고 나오기에 windows.h에 선언된 구버젼의 winsock을 무시해야 된다.
해결 방법은 밑의 글과 같다. 마음에 드는 걸로 고라 잡길...
해결 방법 하나.
windows.h 위에 winsock.h을 선언한다
ex> #include <winsock.h>
#include <windows.h>
해결 방법 둘.
프로젝트 속성
프로젝트 속성
-> C/C++
-> Preprocessor
에서 _WINSOCKAPI_ 를 Define에 추가해 사용합니다.
해결 방법 셋.
선언시...
#ifndef _WINSOCK2API_
#include <WINSOCK2.H>
#include <windows.h>
#endif
해결 방법 넷.
winsock2.h를 .cpp 파일에서 선언한다. 이때 .h에 있는 winsock2.h 종속적인
부분을 바꾸어 컴파일 하면 된다.
ex>
network.h
#include <windows.h>
class Net
{
DWORD m_hSocket; // SOCKET m_hSocket;
......
};
network.cpp
#include <winsock.h>
#include "network.h"
.....
해결완료 ㅎ
[출처] windows.h winsock2.h 의 충돌|작성자 에쑤비
'Note..' 카테고리의 다른 글
ICMP messages (0) | 2011.11.06 |
---|---|
Overlapped I/O and Socket (0) | 2011.09.25 |
이번에는,, (1) | 2011.08.14 |
윈도우 폴더, 글자길이제한의 또다른 필요성?! (0) | 2011.08.14 |
후위표기식 변환 및 계산 (1) | 2011.08.11 |