문제

당신이 그렇게 할 때 예측 한 모든 문제는 무엇입니까?

도움이 되었습니까?

해결책

  1. VC 6은 더 이상 Microsoft에서 지원하지 않습니다, 어떠한 방식으로. 무언가 잘못되고 어떤 이유로 든 컴파일 할 수 없었던 경우, 우리는 Microsoft의 도움을받을 수 없을 것입니다. 이런 식으로 무언가 잘못 될 수있는 것 같지는 않지만 문제의 코드가 주요 수익원이라면 균형을 잡을 수 있습니다.
  2. VC6에서 64 비트 코드를 컴파일하는 것은 불가능합니다. 32 비트 프로그램은 64 비트 창에서 실행됩니다. 그러나 기본 64 비트 제품 (예 : 단일 프로세스에서 3GB 이상의 RAM을 사용할 수 있음)을 만들어 잠재적 인 속도와 메모리 이득을 활용 해야하는 경우 VC6이 나옵니다.
  3. VC9는 훨씬 더 나은 표준 준수를 가지고 있습니다. VC6의 표준 준수는 매우 열악했습니다. 이것은 실제로 포트해야 할 이유이며 아마도 그렇지 않은 이유입니다. VC6을 사용한 프로그래머는 '잘못된 방법'을 수행하는 데 익숙해졌으며, 그 코드의 대부분은 VC9에서 작동하도록 리팩토링되어야합니다.

위의 #3의 간단한 예는 for 루프입니다.

for( int n = 0; n < someMax; ++n )
{
  // do stuff
}

printf("Did %d stuffs", n);

이 코드는 VC6에서 작동하지만 VC9에서는 그렇지 않습니다. 실제로 VC6이 VC6의 결함이라는 사실은 기형 프로그램입니다.

VC6에서 VC9로 포트하기로 한 결정은 슬램 덩크가 아닙니다. 프로젝트가 얼마나 어려운지 고려하고 얻는 이익과 피하는 문제로 균형을 잡아야합니다.

이 프로젝트를 수행할지 여부와 방법을 결정할 때 Microsoft의 중단 변경 목록을 검토해야합니다. VC6에서 VC7로 변경되는 첫 번째 목록은 큰 목록입니다. 다른 것들은 비교할 때 훨씬 작습니다. VC6에서 무엇이든 포트하면 2005 년 이상이어야합니다.

다른 팁

코드 기반에 대해 얼마나 큰 이야기를하고 있습니까?

작은 프로그램을 포팅하는 것은 (대부분 비 모전 C ++ 코드) 상당히 사소해야합니다.

그러나 한 번은 100.000 줄의 템플릿 사용 코드를 VC6에서 VC2005로 변환해야했는데, 그것은 악몽의 주 (5 일의 작업)였습니다. 주요 문제는 문제의 약 30% (70)를 손으로 고쳐야한다는 것입니다. %는 상당히 사소했으며 검색 및 대체로 고칠 수있었습니다). 그러나 더 많은 문제는 이전 코드에 테스트 사례가없고 테스트 프레임 워크가 없다는 사실이었습니다. 따라서 응용 프로그램을 컴파일하지 않고 Segfault가 아니고 괜찮아 보이면 실제로 작동하는 모든 것을 확신 할 수 없었습니다. 예상대로.

실제로 제 조언은 코드의 크기와 테스트의 가용성을 고려하고 코드를 실제로 포팅 해야하는지 고려하는 것입니다 (제 경우에는 예, 특히 소프트웨어가 항상 그렇지는 않습니다. 곧 사라질 것입니다)

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