문제

MS VS C++ 6.0과 MSVS C++ 2008의 장점/단점은 무엇입니까?

이런 질문을 하는 주된 이유는 최신 버전 대신 이전 버전을 선호하는 괜찮은 프로그래머가 여전히 많기 때문입니다.

새 것보다 오래된 것을 선호하는 이유가 있나요?

도움이 되었습니까?

해결책

우선, MSVS 6으로 빌드된 실행 파일에는 현재 Windows와 함께 제공되는 msvcrt.dll(C 런타임)만 필요하기 때문일 수 있습니다.

MSVS 2008 실행 파일에는 msvcrt9가 함께 제공되거나 이미 설치되어 있어야 합니다.

또한 6.0 C 런타임을 사용하여 Windows 32비트용으로 이미 컴파일된 OSS 라이브러리가 많이 있지만 2008 C 런타임의 경우 소스를 가져와 직접 컴파일해야 합니다.

(대부분의 라이브러리는 실제로 6.0 C 런타임을 사용하는 MinGW로 컴파일됩니다. 이것이 또 다른 이유일 수도 있습니다.)

다른 팁

Visual C++ 6.0에 비해 Visual Studio 2008의 장점:

  • 더 나은 템플릿 처리 기능을 갖춘 훨씬 더 많은 표준 호환 C++ 컴파일러
  • x64/모바일/XBOX 대상 지원
  • 향상된 STL 구현
  • C++0x TR1 지원(스마트 포인터, 정규식 등)
  • 보안 C 런타임 라이브러리
  • 향상된 코드 탐색
  • 향상된 디버거;원격 디버그 세션 실행 가능성
  • 더 나은 컴파일러 최적화
  • 많은 버그 수정
  • 멀티 코어/멀티 CPU 시스템에서 더 빠른 빌드
  • 많은 멋진 기능을 갖춘 향상된 IDE 사용자 인터페이스
  • IDE의 매크로 지원이 향상되었습니다.DTE를 사용하면 더 많은 IDE 메서드 및 변수에 액세스할 수 있습니다.
  • 업데이트된 MFC 라이브러리(VS2008 서비스 팩 1)
  • OPENMP(쉬운 멀티스레딩) 지원(VS2008 pro에만 해당)

Visual Studio 2008로 전환할 때의 단점:

  • IDE는 VS6보다 훨씬 느립니다.
  • Intellisense에는 여전히 성능 문제가 있습니다(VisualAssistX로 교체하면 도움이 될 수 있음).
  • 병렬 어셈블리로 인해 앱 배포가 훨씬 더 문제가 됩니다.
  • 로컬(오프라인) MSDN 라이브러리가 매우 느립니다.
  • 말한 바와 같이 여기, Professional 버전에는 프로파일러가 없습니다.

조엘의 최근 정신에 따라 블로그 게시물, 게시된 다른 답변 중 일부를 단일 답변으로 결합했습니다(그리고 이 게시물을 커뮤니티 소유 게시물로 만들었으므로 이 게시물로부터 평판을 얻지 못할 것입니다).괜찮으시길 바랍니다.Laur, NeARAZ, 17 of 26, me.yahoo.com 및 답변을 주신 모든 분들께 깊은 감사를 드립니다.-- 크리스N

Visual C++ 2008을 사용하여 개발된 응용 프로그램이 Visual C++ 6.0을 사용하여 개발된 응용 프로그램보다 더 많은 DLL을 필요로 하는 경우는 아니라는 점을 덧붙이고 싶습니다.이는 기본 프로젝트 구성일 뿐입니다.

프로젝트 속성, C/C++, 코드 생성으로 이동한 다음 런타임 라이브러리 다중 스레드 DLL 및 다중 스레드 디버그 DLL(릴리스 및 디버그 구성)에서 멀티스레드 그리고 다중 스레드 디버그, 그러면 애플리케이션의 종속성이 적어집니다.

내 머릿속에서 새로운 Visual Studio의 장점은 다음과 같습니다.

  • 더욱 엄격한 표준 준수
  • X64 / 모바일 / Xbox 대상 지원
  • 더 나은 컴파일러 최적화
  • (방법) 더 나은 템플릿 처리
  • 향상된 디버거;원격 디버그 세션을 실행할 수 있습니다
  • 향상된 IDE
  • 향상된 매크로 지원;DTE를 사용하면 더 많은 IDE 메서드 및 변수에 액세스할 수 있습니다.

단점:

  • IDE가 느린 것 같습니다.
  • Intellisense는 여전히 성능 문제가 있습니다 (VisualAsistx로 교체하면 도움이 될 수 있습니다)
  • 런타임은 보편적으로 사용할 수 없음
  • 소스 제어 통합은 최대 PAR이 아닙니다 (모든 공정성에서는이 기능이 완전히 부족하지만)

위에서 언급한 배포 외에도 MSVC 6.0의 주요 장점은 속도입니다.10년 된 IDE이기 때문에 최신 컴퓨터에서는 꽤 빠르게 느껴집니다.최신 버전의 Visual Studio는 고급 기능을 제공하지만 비용이 많이 듭니다(복잡성과 느린 속도).

그러나 MSVC 6.0의 가장 큰 단점은 호환되지 않는 C++ 컴파일러 및 라이브러리입니다.진지한 C++ 프로그래밍을 하려는 경우 이는 매우 놀라운 일입니다.MFC-응용 프로그램만 빌드하는 경우에는 별 문제가 되지 않을 것입니다.

Visual C++ 6.0은 Purify, HeapAgent, BoundsChecker 및 MemCheck와 같은 메모리 추적 도구와 완벽하게 통합됩니다. Visual C++ 6.0이 출시된 이후 이러한 메모리 추적 도구가 적극적으로 유지 관리되고 공격적으로 판매되었기 때문입니다.

그러나 C++는 한동안 유행하지 않았기 때문에 메모리 추적 도구를 판매하는 회사에서는 여전히 C++를 판매하지만 Visual Studio 2008을 포함한 새로운 Visual C++ 버전으로 업데이트하거나 통합하지 않습니다.따라서 Visual Studio 2008에서 메모리 추적 도구를 사용하는 것은 실망스럽고 오류가 발생하기 쉬우며 어떤 경우에는 불가능합니다.

VC6 이후 Visual Studio의 초점은 대부분 C#, .NET 및 기타 기능에 맞춰져 있었기 때문에 일부 C++ 전문가들은 VC6을 옛날 시절로 여겼습니다.그 이후로 C++ 개발자를 위한 Visual Studio의 상황이 개선되었지만 .NET 사용자의 경우만큼 극적으로 개선되지는 않았습니다.

VS2008이 VC6보다 훨씬 뛰어난 점 중 하나는 C++ 프로젝트를 병렬로 구축할 수 있다는 것입니다.이로 인해 단일 CPU 시스템에서도 빌드 속도가 훨씬 빨라질 수 있지만 특히 코어가 여러 개인 경우 더욱 그렇습니다.

MS VC6의 STL 구현이 스레드로부터 안전하지 않다는 것을 알고 계셨습니까?특히, 멀티 스레드 라이브러리로 컴파일할 때에도 basic_string의 참조 카운팅 최적화가 폭발합니다.http://support.microsoft.com/kb/813810

VS6용 서비스 팩을 모두 설치해도 여전히 견고한 IDE/컴파일러 콤보가 있습니다.인터넷을 통해 실제 제품을 출시해야 하는 소프트웨어 개발자로서 저는 매번 VC++ 런타임과 .NET 프레임워크를 배송하고 싶지 않습니다(설치 프로그램/실행 파일에 직접 번들로 묶을 수는 없습니다. 이는 Microsoft에서 금지합니다). ).아시다시피, 킬로바이트의 코드를 실행하기 위해 몇 메가바이트의 런타임을 사용하는 것은 다소 어리석은 일입니다.VC++ 6.0에는 실행 파일과 기껏해야 2개의 .DLL만 필요합니다.

또한 디버그 런타임은 VC++ .NET으로 배포할 수 없습니다. 클라이언트가 내 제품을 디버깅해야 하는 경우에는 좋지 않습니다. :)

내 생각에는 내가 여전히 VC++ 6.0을 사용하는 주된 이유가 있지만 IDE 자체는 보기 흉합니다(예:탭 지원 없음).나는 일반적으로 코드 블록을 대신 사용하여 IDE 제한 사항을 우회합니다(CodeBlocks는 모든 VC++ 버전에 대해 CL.EXE/LINK.EXE를 지원합니다).

코볼푸

Visual C++ 2008은 훨씬 더 표준을 준수합니다(Visual Studio 6은 1998년에 설정된 C++ 표준을 지원하지 않습니다).

VS2008은 더 나은 컴파일러를 갖추고 있습니다(훨씬 더 많은 표준을 준수하고 더 나은 최적화 등...).

VS6에는 훨씬 빠른 IDE가 있습니다.VS2008 IDE에는 좋은 기능이 많이 있지만 VS6보다 속도가 느립니다.

6.0에서 2008로 진행되는 개선 사항의 빠른 목록은 다음과 같습니다.

  • 많은 버그 수정
  • C++ 표준에 대한 더 나은 적합성
  • 더 나은 컴파일러 최적화
  • 향상된 UI(더 나은 Intellisense 등)

사람들이 가끔 잊어버리는 한 가지 사실은 VS 6.0이 이제 10년이 넘었다는 것입니다!이 시점에서 나는 누군가가 그것을 고수하고 싶어할 것이라고 생각하지 않습니다.

우리가 직면한 한 가지 어려운 점은 "가치"가 키워드가 되었다는 것입니다.

Visual C++ 6은 2008에 비해 때때로 버그가 매우 많을 수 있습니다.특히 몇 가지 사항은 다음과 같습니다.

  • 열악한 템플릿 지원/이상함(예: sometemplate<othertemplate<t>> 작동하지 않지만 sometemplate< othertemplate<t> > 일하는 중)
  • 표준을 준수하지 않음
  • 리소스 편집기는 쓰레기입니다(무엇보다도 "파란색 선"이 무작위로 움직이는 것 같습니다).
  • 특정 종류의 8비트 비트맵 편집만 지원합니다(그림 리소스에서 볼 수 있도록 Paint.net에 저장된 비트맵을 변환하려면 imagemagick을 사용해야 합니다).
  • 읽기 전용 파일 작업/기발한 소스 안전 통합에 대한 끔찍한 지원.

때때로 VS6에서 개발하는 것은 Internet Explorer 5.5에서 웹 사이트를 보기 좋게 만드는 것처럼 느껴집니다.

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