이전포스트

VC 6.0 과 VC2003

freemmer 2016. 9. 1. 15:57

출처 : http://www.wimy.com/wiki/wiki.php/fromVC6ToVC2003

 

목차

1 뭐가 다른가?
2 VC++ 6.0 의 프로젝트를 VC++ .NET 2003 으로 변환하기
2.1 컴파일 문제
2.2 링크 문제
3 가장 널리 쓰이고 있는 Visual C++ 6.0 에서 가장 최근에 발표된 Visual C++ .NET 2003 으로 개발자들이 처음 IDE 를 바꾸었을 때 참고할 만한 것들을 모아놓음
4 공통적(VC++ 6.0 과 VC++ .NET 둘다)으로 쓸만한 단축키

1 뭐가 다른가? #


  • 컴파일러가 바뀌었다
    => ANSI/ISO C++ 을 보다 잘 지원해준다. template 등... 현재 98% 까지 지원해준다고 한다. gcc 도 아직 100% 를 지원하지 않는다. 덕분에 VC++ 6.0 의 소스를 그대로 가져오면 warning 등을 좀 더 많이 낼 수 있다. 

    => 보다 안정적인 프로그래밍을 가능하게 해준다. 기본적으로 보여주는 Warning 의 종류가 늘었다. 가끔 실행 시간(runtime)에 overflow 를 감지해내기도 한다. 

  • 클래스 뷰에서 namespace 를 지원해준다. 아마 C# 의 역할이 커서일 듯 

  • 보다 나은 MFC 를 제공해준다. VC++ 6.0 이 나올 때는 아직 윈2000 이 나오기 전이었다는 걸 기억해라. 윈2000, 윈xp 등에서의 확장된 MFC class 들을 제공해준다. 대표적으로 CImage 가 있다. 

  • 다양한 버그를 잡았다. 대표적으로 STL 에 존재하던 몇몇 버그들이 수정되었다. 그리고 함수가 추가된 것도 있다. 

2 VC++ 6.0 의 프로젝트를 VC++ .NET 2003 으로 변환하기 #


  • 먼저 .dsw 파일을 더블클릭하거나, .NET 2003 에서 불러들이자. 그러면 변환하겠냐고 물어보는데 .sln, .vcproj 파일이 생기게 된다. 이 때 기존의 .dsw, .dsp 파일은 전혀 변화가 없고 단지 새로운 파일이 생기는 것이므로, VC++ 6.0, VC++ .NET 2003 양쪽에서 불러올 수 있다. 물론, VC++ 6.0 에서 고친 컴파일 옵션등은 자동으로 .NET 2003 에 적용되지 않는다(물론 그 반대도 되지 않는다. 각각 파일이 다르게 저장될 것이니 당연하다^^) 

  • 대부분의 옵션들은 그대로 오게 되므로 큰 문제는 없다. 단, 컴파일이나, 링크를 시작하면 특정 문제가 발생할 수 있다. 

2.1 컴파일 문제 #


  • 대부분의 문제는 갑자기 수많은 warning 이 생길 수 있다는 것이다. 만약 STL 을 많이 썼다면 대부분 unsigned 와 signed 의 mismatch 문제일 것이다. 대부분 적절히 unsigned 를 붙여주거나, 강제 캐스팅을 통해서 해결할 수 있다. 단, 확실히 unsigned 로 해도 되는지, 강제 캐스팅을 해도 적절한지 한번은 생각해봐야 한다. 대부분 다음과 같은 코드에서 문제가 생길 수 있다.
vector < int > v;
// ... v 에 다양한 연산
for ( int i=0; i<v.size(); ++i)
{
   // ... 다양한 연산
}

위와 같은 경우 int i 를 unsigned int i 로 해주면 간단히 warning 이 해결된다. 

2.2 링크 문제 #


  • 갑자기 libci.lib 파일을 찾는 경우가 있다. 이 경우 기존의 VC++ 에 있던 예전 C++ 라이브러리 문제인데, 일단은 .h 종류의 C++ 헤더 파일을 표준 헤더 파일로 바꿔보자. 무슨 말인가 하면 <iostream.h> 를 <iostream> 로, <math.h> 를 <cmath> 로 바꾸자. 이렇게 바꿀 경우using namespace std 등 네임스페이스를 염두에 둬야할 수도 있다. 그리고 여기에 따른 사소한 컴파일 오류가 생길 수 있다. 일단 이런식으로 표준 헤더 파일로 바꿔보자. 그래도 에러가 난다면 링커 옵션의 Input 옵션에서 Ignore Specific Library 에 libci.lib 파일을 적어준다. 

3 가장 널리 쓰이고 있는 Visual C++ 6.0 에서 가장 최근에 발표된 Visual C++ .NET 2003 으로 개발자들이 처음 IDE 를 바꾸었을 때 참고할 만한 것들을 모아놓음 #


  • 추가 라이브러리(.lib) 는 어디서 지정하나 

  • 컴파일 단축키는? ==> Ctrl+F7 그대로 

  • 링크 단축키는? ==> Ctrl+Shift+B 

  • 컴파일 및 링크 멈추기 ==> Ctrl + Pause(Break) 

  • 실행시에 인자(argument) 주기 ==> Alt+P,P(프로젝트 속성 페이지) -> 구성 속성 -> 디버깅 -> 명령인수 에 적어준다. 

  • 커서가 있는 단어 선택(마우스로 그 단어 더블클릭한것 처럼) ==> Ctrl+W 

  • 모든 파일에서 단어 찾기 단축키는? ==> Ctrl+Shift+F 

  • 찾은 다음에 하나씩 순환하기는? ==> F8 


4 공통적(VC++ 6.0 과 VC++ .NET 둘다)으로 쓸만한 단축키 #


  • Ctrl+Shift+SpaceBar : 현재 함수의 인자들 보기
  • Ctrl + I : Incremental Search
  • Ctrl + Space : linux 의 탭과 같음
  • Ctrl + L : 현재 라인 잘라내기
  • Ctrl + Up, Ctrl + Down : Scroll
  • Ctrl + Shift + 이동키 : 블럭 단위로 선택
  • Ctrl + 이동키 : 블럭 단위로 이동
  • Ctrl + PageUp : 현재 파일의 처음으로
  • Ctrl + PageDown : 현재 파일의 끝으로


반응형