Visual Studio 6에서 업그레이드해야 한다는 설득력 있는 주장은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/191253

문제

프로덕션 시스템 구축을 위해 아직 Visual Studio 6을 사용하고 있는 고객이 있습니다.그들은 STL을 사용하고 다중 프로세서 시스템에서 실행되는 다중 스레드 시스템을 작성합니다.

때때로 서버 시스템 중 하나의 사양을 변경하거나 로드를 늘릴 때 오류를 재현하기가 '이상하게' 어려워집니다.

저는 Visual Studio 6 개발에 몇 가지 문제가 있다는 것을 알고 있으며 Visual Stuio 2005 또는 2008로 전환하도록 설득하고 싶습니다(그들은 Visual Studio 2005를 가지고 있으며 일부 프로젝트에서는 이를 사용합니다).

이 질문의 목적은 알려진 문제 또는 업그레이드 이유 목록을 이러한 문제가 논의되거나 보고되는 링크와 함께 정리하는 것입니다.이러한 문제가 당신을 어떻게 괴롭혔는지에 대한 실제 '공포 이야기'를 갖는 것도 유용할 것입니다.

도움이 되었습니까?

해결책

64 비트 시스템, Vista와의 호환성 문제에 대해 지원되지 않으며 2008 년 4 월 8 일 Microsoft의 확장 지원에서 벗어났습니다.

http://msdn.microsoft.com/en-us/vbrun/ms788708.aspx

다른 팁

배치되지 않은 VC6 STL은 스레드 안전하지 않습니다. 여기를 봐 http://www.amanjit-gill.de/articles/vc6_stl.html, 패치는 서비스 팩에 포함되어 있지 않으며 Dinkumware에서 직접 가져와야합니다 (여기에서 http://www.dinkumware.com/vc_fixes.html) 그런 다음 각 설치에 적용하십시오 ...

우리 직장에서 본 가장 큰 문제는 약간 복잡한 템플릿 클래스나 함수도 처리할 수 없다는 것입니다.이 사실만으로도 회사의 가장 헌신적인 VS6 팬 중 일부가 VS2005를 업그레이드하고 사용하기 시작했습니다.템플릿 문제 외에도 intellisense가 훨씬 더 좋고, 디버깅이 더 쉽고 정확하며, 많은 사람들이 IDE를 탐색하기 더 쉽다고 생각합니다.지금까지 우리가 본 유일한 단점은 2005년 빌드가 6년보다 시간이 조금 더 걸린다는 것입니다(그러나 이는 아마도 컴파일러가 더 강력해졌기 때문에 발생하는 부작용일 것입니다).

VS6의 알려진 문제 샘플을 보려면 다음 사이트를 확인하세요.

조금만 더 찾아보시면 더 많은 것을 찾으실 수 있을 거라 믿습니다.

VS6은 현재 C/C ++ 표준에 따라 코드를 컴파일하지 않습니다. 예를 들어,

  • 루프에 대한 잘못된 (오래된) 범위 규칙이 있습니다. 적어도 하나의 MSFT SDK가 올바른 의미론을 기대하는 코드로 업데이트되었으므로 SDK는 더 이상 VS6로 컴파일하지 않습니다.
  • 가장 사소한 템플릿 구성을 제외한 모든 것을 컴파일하는 데 어려움이 있습니다.
  • 최근 표준 업데이트에서 불법으로 선언 된 일부 템플릿 구조물을 컴파일합니다 (구성이 실제로 일반 사용자가 기대하는 것을 수행하지 않기 때문에).

Operator New는 C ++ 사양을 준수하지 않으며 할당 실패에 대한 예외를 제외하지 않으므로이 문제를 해결하는 것은 사소하지 않습니다.

보다: http://msdn.microsoft.com/en-us/magazine/cc164087.aspx

업그레이드하는 가장 큰 이유 중 하나는 표준 호환 C ++ 컴파일러 (여전히 100%는 아니지만)이므로 프로젝트에서 더 많은 C ++ 기능을 활용할 수 있으며 버그를 찾을 수없는 이상한 해킹 및 해결 방법에 대해 걱정하지 않을 수 있습니다.

Vista와 호환되지 않습니다. 도대체, Vista와 관련된 2005 년 대가 긴 문제가 있습니다.

즉, VS의 개선의 대부분은 C ++ 기본 코드 이외의 모든 것에 적용되는 것으로 보입니다. 내가보고있는 것은 더 많은 표준 준수이며, 이는 중요하지만 극적이지 않습니다.

Visual Studio 6은 지속 된 Windows SDK와 호환되지 않으므로 최신 OS 기능을 쉽게 사용할 수 없습니다.

더 이상 구체적인 세부 사항이 없지만 직장에서 업그레이드했을 때 새 컴파일러는 VC 6이 조용히 미끄러 져 들어가는 몇 가지 오류를 발견했습니다. 업그레이드로 인해 제품 견고성이 향상되었습니다.

그들이 STL을 사용하는 경우, 최근에 출시 된 사람에 관심이있을 수 있습니다. 기능 팩, 여기에는 구현이 포함됩니다 TR1.

내 물건을 업그레이드했지만 상대적으로 복잡하지 않습니다. 업그레이드 할 사기입니다 vs 2005 DLL Hell

STL의 VS 2008 버전이 컴파일됩니다 /clr, 그들이 관리되는 세계로 전환하는 데 관심이 있다면, 모든 오래된 코드를 잃을 필요는 없습니다.

Defoult 최신 버전에는 더 나은 컴파일러와 더 나은 라이브러리가 있습니다. 그러나 기존 프로젝트를 최신 스튜디오로 포트하는 것이 항상 쉬운 것은 아니며 컴파일러와 라이브러리를 수동으로 업그레이드 할 수 있습니다.

1 년 전에 인텔 컴파일러와 함께 vs 6.0을 사용하고있었습니다. 우리는 방금 그 당시 많은 오래된 코드를 가지고 있었는데, 그것은 반복자를 포인터로 위협하고 그 반대를 그 반대도 마찬가지였으며, 그것은 모두 정말 지저분하고 무서웠으므로 이것은 우리를 업그레이드에서 유지했습니다.

그러나 현재 사용중인 프레임 워크가 단순히 vs 6.0에서 실행되지 않기 때문에 결국 업그레이드해야했습니다. 이것이 최후의 이유라고 생각하십시오 :-)

세 번째 부동 라이브러리는 제한된 수의 컴파일러 만 지원합니다. 클라이언트는 결과적으로 버그 픽스 또는 기능 업그레이드를 수락하지 못할 수 있습니다.

예를 들어, 부스트로 널리 사용되는 라이브러리조차도 7.1 이상 만 지원합니다 (원천)

VC6은 이전 ATL 버전과 함께 배송하기 때문에 데이터 실행 방지 (DEP)에도 문제가있을 수 있습니다. 평소와 같이, 참조하십시오 레이몬드 첸 자세한 내용은.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top