Visual C++ 6.0을 Visual Studio 2019로 Migration하기

Visual C++ 6.0을 Visual Studio 2019로 Migration하기

Visual C++ 6.0이 1998년에 출시되었다고는 하지만, 아직도 이 컴파일러로 빌드되고 배포되는 Software가 있다.
이번에 최신 Visual Studio로 Migration을 의뢰받았다.
비슷한 의뢰를 감안하여 관련 사항을 정리해보도록 하자.

Warning C4995 ‘CDaoDatabase’: name was marked as #pragma deprecated

CDaoDatabase 대신에 CAdoDB로 변경이 요구된다.
Class 변경 작업은 2차 작업으로 기약하고, 경고를 끄고 1차 작업을 마무리하고자 한다.

컴파일지시자 pragma로 해당 경고 발생을 막는다.
지정자 suppress는 바로 이어지는 경고를 비활성화하고, 바로 활성화 시킨다.

즉,

#pragma warning(suppress: 4995)
foo();

#pragma warning(disable: 4995)
foo();
#pragma warning(default: 4995)

와 같다.

실제 적용예는 다음과 같다.

void CFoo::Boo()
{
#pragma warning(suppress: 4995)
    CDaoDatabase db;
}

_WINSOCK_DEPRECATED_NO_WARNINGS

Warning C4996 ‘gethostbyname’: Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API

winsock으로 개발된 코드는 winsock2로 재개발하라는 의미다.

재구현 이슈이기 때문에 2차 작업으로 기약하고, 해당 경고를 꺼보자.

다음과 같이하면 될 줄 알았는데, 경고가 사라지지 않는다.

#include "stdafx.h"
#include "foo.h"

#define _WINSOCK_DEPRECATED_NO_WARNINGS

해결 방법은 프로젝트 속성 창에 추가해야 한다.

[Menu > Project > Properties > Configuration Properties > C/C++ > Preprocessor > Ppreprocessor Definitions]
_WINSOCK_DEPRECATED_NO_WARNINGS를 추가해준다.

Debug, Release 모두 추가해주는 것을 잊지 말자.

댓글 쓰기

0 댓글