Difference between r1.9 and the current
@@ -15,7 +15,7 @@
VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. )
VisualStudio 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, [:Debugging Debugger] 사용, [Profiling], Goto Definition
VisualStudio 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, [:Debugging Debugger 사용], [Profiling], Goto Definition
== Bug ===== Class View 가 안나올때 ===
@@ -26,8 +26,10 @@
VisualAssist 를 사용한다면, Code Re-Parsing 기능을 실행해준다.
== pragma once ==
C++ 에서는 자바에서의 import 의 명령과 달리 해당 헤더화일에 대한 pre-processor 의 기능으로서 'include' 를 한다. 그러다 보니 해당 클래스나 함수 등에 redefinition 문제가 발생한다. 이를 방지하는 방법으로 하나는 #ifndef - #endif 등의 명령을 쓰는것이고 하나는 pragma once 이다.
다음은 예제를 참조.
#define _CBOARDBASE_H_
== pragma once ==
C++ 에서는 자바에서의 import 의 명령과 달리 해당 헤더화일에 대한 pre-processor 의 기능으로서 'include' 를 한다. 그러다 보니 해당 클래스나 함수 등에 redefinition 문제가 발생한다. 이를 방지하는 방법으로 하나는 #ifndef - #endif 등의 명령을 쓰는것이고 하나는 pragma once 이다.
{{{~cpp
{{{
~cpp
#ifndef _CBOARDBASE_H_ // _CBOARDBASE_H_ 가 preprocessor 로 선언되지 않았을 경우 추가된다. #define _CBOARDBASE_H_
@@ -40,7 +42,8 @@
#endif
}}}
이는 다음과 같이 표현 가능하다.
class CBoardBase {
}}}
이는 다음과 같이 표현 가능하다.
{{{~cpp
{{{
~cpp
#pragma onceclass CBoardBase {
@@ -50,10 +53,8 @@
.
.
}}}
단, pragma 명령은 컴파일러에 따라 지원여부가 다르므로 사용에 대해 유의할 필요가 있다.
DeleteMe) once 외에도 #pragma 에 관한 다양한 옵션들이 존재한다.
DeleteMe) #pragma 는 거의 표준에 가깝다고 어디서 본 것 같습니다;;
== [Profiling] ==
[C++Profiling]
== Debugger 의 사용 ==
.
}}}
단, pragma 전처리기는 de facto라서 정식 표준이 아니다. 따라서 사용에 대해 유의할 필요가 있다.[* pragma는 once외에도 다른 option도 존재한다.]
[C++Profiling]
== Debugger 의 사용 ==
VisualStudio 는 Microsoft 에서 개발한 Windows용 IDE 환경이다. 이 환경에서는 Visual C++, Visual Basic, Visual C# 등 여러 언어의 개발환경이 함께하며, 최신 버전은 Visual Studio 2012이다.
연혁 ¶
- 1998.06 Visual Studio 6.0
- 2002.02 Visual Studio .Net
- 2005.11 Visual Studio 2005
- 2007.11 Visual Studio 2008
- 2010.04 Visual Studio 2010
- 2012.09 Visual Studio 2012
DeleteMe) .net 2005 발매기념 대규모 행사(설명, 시연, 세미나)가 예정에 있습니다. 사전 신청을 받더군요. 11월에는 확실히 나올듯.
학교에서는 2008년까지만 해도 Visual C++ 6.0을 많이 사용했으나 2008년 2학기에 홍병우 교수님이 Visual Studio 2008 사용을 권한 것을 계기로 최신 버전 환경이 갖추어졌다.
VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. )
Bug ¶
Class View 가 안나올때 ¶
pragma once ¶
C++ 에서는 자바에서의 import 의 명령과 달리 해당 헤더화일에 대한 pre-processor 의 기능으로서 'include' 를 한다. 그러다 보니 해당 클래스나 함수 등에 redefinition 문제가 발생한다. 이를 방지하는 방법으로 하나는 #ifndef - #endif 등의 명령을 쓰는것이고 하나는 pragma once 이다.
다음은 예제를 참조.
~cpp #ifndef _CBOARDBASE_H_ // _CBOARDBASE_H_ 가 preprocessor 로 선언되지 않았을 경우 추가된다. #define _CBOARDBASE_H_ class CBoardBase { protected: CBoardBase(); void initBoard(); . . #endif이는 다음과 같이 표현 가능하다.
~cpp #pragma once class CBoardBase { protected: CBoardBase(); void initBoard(); . .단, pragma 전처리기는 de facto라서 정식 표준이 아니다. 따라서 사용에 대해 유의할 필요가 있다.[1]
Debugger 의 사용 ¶
의외로 Debugger 를 이용하지 않는 사람들이 있다. UnitTest 를 작성하면서 프로그래밍을 하지 않는다면, Debugger는 불가피하다. 학교 프로그래밍 수업때 정식으로 가르치지 않기 때문에 MSDN이나 온라인의 강좌, 알고 있는 학우들에게 물어보아 배울수 있다.
(More to come)
(More to come)
여러개의 Project 를 사용하기 ¶
라이브러리 파일 링크 걸기 ¶
기본적으로 지정된 경로 밖에서 라이브러리를 사용해야 하는 경우가 있다. 몰랐다가 링크를 거느라 한참 고생한 김에 여기에 정리해본다.
VS 6.0 ¶
- Project(프로젝트) » Settings(설정)를 선택합니다.
- Link(연결) 탭을 선택합니다.
- Category(카테고리) 드롭 다운 메뉴에서 Input(입력)을 선택합니다.
- Object/library(개체/라이브러리) 모듈 부분에서 라이브러리 파일 이름을 추가합니다.
- 그리고 라이브러리 경로를 이 라이브러리들의 위치에 추가해야 합니다. Additional library path(추가 라이브러리 경로)에 라이브러리 파일이 있는 폴더를 추가해 주세요.
VS.NET ¶
----
- [1] pragma는 once외에도 다른 option도 존재한다.