※ 제가 2007년도에 운영하던 블로그에서 가져온 글 입니다. (최초작성일 : 2007.12.18 11:37)
출처 : http://www.wimy.com/wiki/wiki.php/fromVC6ToVC2003
[edit]
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 에 존재하던 몇몇 버그들이 수정되었다. 그리고 함수가 추가된 것도 있다.
[edit]
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 에 적용되지 않는다(물론 그 반대도 되지 않는다. 각각 파일이 다르게 저장될 것이니 당연하다^^)
- 대부분의 옵션들은 그대로 오게 되므로 큰 문제는 없다. 단, 컴파일이나, 링크를 시작하면 특정 문제가 발생할 수 있다.
[edit]
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 이 해결된다.
[edit]
2.2 링크 문제 #
- 갑자기 libci.lib 파일을 찾는 경우가 있다. 이 경우 기존의 VC++ 에 있던 예전 C++ 라이브러리 문제인데, 일단은 .h 종류의 C++ 헤더 파일을 표준 헤더 파일로 바꿔보자. 무슨 말인가 하면 <iostream.h> 를 <iostream> 로, <math.h> 를 <cmath> 로 바꾸자. 이렇게 바꿀 경우using namespace std 등 네임스페이스를 염두에 둬야할 수도 있다. 그리고 여기에 따른 사소한 컴파일 오류가 생길 수 있다. 일단 이런식으로 표준 헤더 파일로 바꿔보자. 그래도 에러가 난다면 링커 옵션의 Input 옵션에서 Ignore Specific Library 에 libci.lib 파일을 적어준다.
[edit]
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
반응형
'이전포스트' 카테고리의 다른 글
윈도우즈 콘솔 명령어 모음 (0) | 2016.09.02 |
---|---|
Perl로 Doxygen 처럼 만들기. (0) | 2016.09.01 |
리소스 DLL 만드는 법 (0) | 2016.09.01 |
Dll 을 디버깅 하자 (0) | 2016.09.01 |
커멘드 모드를 활용한 VC++ 프로젝트 빌드 방법 (0) | 2016.09.01 |