ATL 및 MFC 변경 사항: ATL 7.1 및 MFC 7.1
업데이트: 2007년 11월
참고 이 항목에서 설명하는 기능 중 일부는 Visual C++의 현재 버전에 없을 수도 있습니다.
Visual C++ .NET 2003에서는 ATL 및 MFC 라이브러리와 마법사가 변경되었습니다. 이 중 일부 변경 사항으로 인해 기존 코드를 사용할 수 없는 경우도 있습니다.
프로젝트를 ATL 6.0에서 ATL 7.1로 마이그레이션할 경우의 마법사 문제(ATL)
CAtlServiceModuleT::InitializeSecurity가 CAtlServiceModuleT에서 제거되었습니다(ATL).
SetRfc822Time 함수가 업데이트되었습니다.
기본 ATL 마법사를 사용하여 만들어진 프로젝트는 Windows NT에서 제대로 실행되지 않습니다.
프로젝트를 ATL 6.0에서 ATL 7.1로 마이그레이션할 경우의 마법사 문제
Visual C++ 6.0 프로젝트를 Visual C++ .NET 2003 프로젝트로 변환하면 메시지 맵의 끝에 메시지 처리기가 추가됩니다. 메시지 맵에 CHAIN_*_MAP(...) 항목이 있으면 마법사가 추가한 항목이 이 항목의 끝에 포함되지만 처리되지 않을 수 있습니다.
예를 들어, Visual C++ 6.0 ATL 컨트롤이 포함된 프로젝트를 Visual C++ .NET 2003 프로젝트로 마이그레이션하면 OnInitDialog 처리기가 호출되지 않습니다. 이는 MESSAGE_HANDLER가 CHAIN_MSG_MAP(...) 항목의 앞이 아닌 뒤에 놓이기 때문입니다.
OnInitDialog 처리기가 호출되도록 하려면 CHAIN_MSG_MAP(...) 항목의 끝에 CHAIN_MSG_MAP(CComControl<Name of class>) 줄을 포함해야 합니다. 또는 OnInitDialog 기본 클래스 구현에서 필요한 초기화를 수행해야 합니다.
CAtlServiceModuleT::InitializeSecurity가 CAtlServiceModuleT에서 제거되었습니다.
Visual Studio .NET 2003에서는 이 메서드가 기본 클래스에 구현되지 않습니다. 자세한 내용은 CAtlServiceModuleT::InitializeSecurity를 참조하십시오.
SetRfc822Time 함수가 업데이트되었습니다.
잠재적인 버퍼 오버런을 방지하기 위해 이제 SetRfc822Time 함수에는 추가 매개 변수를 사용하며 반환된 시간 데이터를 저장하는 데 필요한 문자열의 길이를 나타내는 반환 값이 있습니다.
기본 ATL 마법사를 사용하여 만들어진 프로젝트는 Windows NT에서 제대로 실행되지 않습니다.
Visual Studio .NET 2003에서 MIDL 컴파일러는 /robust라는 기본 설정을 가집니다. 이 설정은 프로젝트가 Windows NT 4에서 실행될 경우 응답을 중지하도록 만듭니다.
MIDL 컴파일러 플래그를 /no_robust로 변경하려면
프로젝트를 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 속성을 클릭합니다.
프로젝트 속성 대화 상자가 나타납니다.
왼쪽 창에서 MIDL을 클릭한 다음 명령줄을 선택합니다.
추가 옵션 입력란에 /no_robust를 입력합니다.