서버 관련 함수중
mswsock.h 안에 WSAID_CONNECTEX 라던가, LPFN_CONNECTEX 같은것이 있습니다.
문제는 vs2010에서 이전 vs2005에서 작업한걸 불러오면 여기서 정의되지 않은 심볼이라고 에러 나오더군요.
코드 정의창에선 나오는데 왜 그런가 하고 보다가, 위에 보니
#if(_WIN32_WINNT >= 0x0501)
로 해놨더군요... orz
참고로 프로젝트에선 #define _WIN32_WINNT (0x0500) 로 정의 되었으니...
그 이하 정의된 부분이 다 스킵되어서 컴파일이 안되었던 거였습니다.. ㅠㅠ
해결을 위해 위의 0x500 을 0x501로 바꿧습니다..
참고로 MS에선 각 OS마다 사용하는 라이브러리를 구분하기 위해 위의 정의문이 각각 있습니다.
Minimum system required |
Macros to define |
Windows Server 2003 |
_WIN32_WINNT>=0x0502 WINVER>=0x0502 |
Windows XP |
_WIN32_WINNT>=0x0501 WINVER>=0x0501 |
Windows 2000 |
_WIN32_WINNT>=0x0500 WINVER>=0x0500 |
Windows NT 4.0 |
_WIN32_WINNT>=0x0400 WINVER>=0x0400 |
Windows Me |
_WIN32_WINDOWS=0x0500 WINVER>=0x0500 |
Windows 98 |
_WIN32_WINDOWS>=0x0410 WINVER>=0x0410 |
Windows 95 |
_WIN32_WINDOWS>=0x0400 WINVER>=0x0400 |
Internet Explorer 6.0 |
_WIN32_IE>=0x0600 |
Internet Explorer 5.6 |
_WIN32_IE>=0x0560 |
Internet Explorer 5.01, 5.5 |
_WIN32_IE>=0x0501 |
Internet Explorer 5.0, 5.0a, 5.0b |
_WIN32_IE>=0x0500 |
Internet Explorer 4.01 |
_WIN32_IE>=0x0401 |
Internet Explorer 4.0 |
_WIN32_IE>=0x0400 |
Internet Explorer 3.0, 3.01, 3.02 |
_WIN32_IE>=0x0300 |
OS 이외에 컴파일러에 대한 정의문도 따로 있습니다.
MS Visual C++의 컴파일러 자체 매크로 상수
VC++4.0: _MSC_VER = 1000 ( Visual C++ 4.x )
VC++5.0: _MSC_VER = 1100 ( Visual C++ 5 )
VC++6.0: _MSC_VER = 1200 (Visual C++ 6 )
VC++7.0: _MSC_VER = 1300 (Visual C++ .NET )
VC++8.0: _MSC_VER = 1400( Visual C++ .NET 2005 )
VC++9.0: _MSC_VER = 1500( Visual C++ .NET 2008 )
'윈도우 서버에 대해서' 카테고리의 다른 글
네트워크 게임 튜터리얼 1 - 워밍업 (0) | 2012.09.25 |
---|---|
ActiveX 만들기 총정리 (0) | 2012.06.26 |
Visual C++ 2010 마이그레이션중... error C2825: '_Fty': '::'가 뒤에 나오면 클래스 또는 네임스페이스여야 합니다. (0) | 2012.06.20 |
[Upgrade to VC++ 10] _WIN32_WINNT 버전 문제 (0) | 2012.06.20 |
Visual C++ 2010 으로 소스 판올림 하면서 msado15.dll 에러 날때... (0) | 2012.06.20 |