VC6을 VC2005/VC2008로 포팅하는 이점?
-
07-07-2019 - |
문제
나는 우리 팀에게 VC6 신청서를 VC2005로 포트하도록 요청하고 있었는데, 언젠가는 같은 일을 할 준비가되어 있습니다.
나는 그들이 표준 준수를 준수한다는 것이 무엇을 의미하는지 실제로 이해하지 못합니다.
포팅을 수행 할 수있는 이점을 나열하도록 도와주세요.
내가 직면하고있는 문제
1) 표준 컨테이너에 대한 디버깅 지원이 없습니다
2) 부스트 라이브러리를 사용할 수 없습니다
3) 우리는 많은 쿼리 생성을 사용하지만 안전하지 않은 CSTRING 형식 기능을 사용합니다.
4) >>와 같은 VC6 문제를 촬영하는 데 많은 시간이 소요됩니다.
vector<vector<int>>
>> 사이의 공간이 있습니다
해결책
장점 :
더 많은 표준 호환 컴파일러. 이것은 다른 플랫폼으로 쉽게 포트가 될 수 있기 때문에 좋은 일입니다 (그렇게하고 싶다면). 또한 Microsoft의 문서보다는 표준에서 사물을 찾을 수 있음을 의미합니다. 결국 기능의 어느 시점에서 컴파일러를 업그레이드해야합니다. 빨리할수록 작업이 줄어 듭니다.
MS가 지원하지 않습니다. 새로운 SDK는 작동하지 않습니다. 64 비트가 작동하지 않습니다. 그리고 나는 그들이 여전히 버그를 고치고 있다고 생각하지 않습니다.
더 좋은 IDE. 개인적으로 저는 MDI보다 탭을 선호합니다. 또한 Visual Studio를 구성하는 것이 훨씬 쉽다고 생각합니다 (사용자 정의 단축키, 메뉴 바 등). 물론 그것은 주관적입니다. Express Edition을 확인하고 동의하는지 확인하십시오.
더 나은 플러그인 지원. VC6에는 일부 플러그인을 사용할 수 없습니다.
단점 :
항구에 걸리는 시간. 이것은 당신이 가지고있는 코드의 종류에 달려 있습니다. 코드가 비표준 준수 VC6 기능을 크게 사용하는 경우 시간이 걸릴 수 있습니다. Andrew가 말했듯이, 오래된 레거시 프로젝트를 유지하고 있다면 그만한 가치가 없을 수도 있습니다.
더 나쁜 성능. 정말 오래된 컴퓨터에서 개발중인 경우 Visual Studio가 너무 느릴 수 있습니다.
비용 방금 빠른 모양을 가지고 있었고 Visual Studio 라이센스는 VC6보다 조금 더 비싼 것 같습니다.
다른 팁
왜 VC2005? VC6에서 업그레이드하기 위해 시간 (및 테스트!)을 투자하려는 경우 VC2008을 대상으로하지 않겠습니까?
레거시 프로젝트를 유지하고 있다면 포팅에 이점이 없을 수 있습니다. 단순히 프로젝트를 변환하고 컴파일러 문제를 해결하면 몇 주가 걸리고 불안정성을 불러 일으킬 수 있습니다.
제품을 적극적으로 개발하고 있다면 주요 장점은 더 이상 8 년이 넘는 제품을 사용하지 않을 것입니다. 이는 분명히 좋은 것입니다.
- 보다 최근의 Windows SDK 버전은 VC6에서 작동하지 않습니다. 최신 Windows 기능을 사용하려면 최근 컴파일러가 필요합니다.
- 이후 컴파일러는 더 많은 표준을 준수한다고합니다. 더 구체적으로 할 수 없어서 죄송합니다. VC6은 표준 템플릿 클래스를 사용하기위한 많은 컴파일러 경고를 생성한다는 것을 알고 있습니다.
- 나중에 컴파일러로 컴파일 된 외부 라이브러리를 사용하는 경우 호환되는 것을 사용해야합니다.
가혹한 전환의 무언가를 준비하십시오 - IDE는 자신과 더 다릅니다.
기본 플랫폼의 다른 버전으로 응용 프로그램의 완전한 호환성을 보장합니다. 그리고 발견 된 오류를 바로 잡아서 최종 사용자가 자신의 버전의 기본 플랫폼을 사용할 수 있도록 충분한 자유를 제공 할 수 있습니다.
나는 당신이 변환해서는 안된다고 말하는 것이 아니라 특정 요점을 취합니다.
1) 표준 컨테이너에 대한 디버깅 지원이 없습니다
항상 VC ++ 6이있는 표준 컨테이너를 사용하여 코드를 디버그합니다. 여기서 당신의 문제는 무엇입니까?
2) 부스트 라이브러리를 사용할 수 없습니다
진실. 더 간단한 물건을 사용할 수 있습니다.
3) >>와 같은 VC6 문제를 촬영하는 데 많은 시간이 소요됩니다.
이것을 막을 수 없어, NB
>> 사이의 공간이 있습니다
음, 그게 a 구문 오류 (적어도 VC ++ 6에 의해 이해되는 C ++의 버전에서) 그와 같이 신고 될 것입니다. 팀이 이런 종류의 일에 "많은 시간"을 소비하는 경우 다른 팀이 필요합니다.
편집하다:
3) 우리는 많은 쿼리 생성을 사용하지만 안전하지 않은 CSTRING 형식 기능을 사용합니다.
VS2005에 따라 동일하게 유형-미공일이 될 것입니다. 왜 이것이 포팅의 이유인지 모르겠습니다. 유형 안전을 원한다면 표준 C ++ I/O 메커니즘을 사용하십시오.
팀이 이점을 볼 수없고 이점을 설명 할 수 없다면 왜 이런 일을하도록 요청하는 이유는 무엇입니까?
당신이 그것을 위해서만 포팅하는 것처럼 들립니다.