E D R , A S I H C RSS

Visual Studio

Difference between r1.6 and the current

@@ -15,7 +15,7 @@

VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. )

VisualStudio 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, 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 이다.
다음은 예제를 참조.
{{{~cpp
{{{ 
~cpp
#ifndef _CBOARDBASE_H_ // _CBOARDBASE_H_ 가 preprocessor 로 선언되지 않았을 경우 추가된다.
#define _CBOARDBASE_H_

@@ -40,7 +42,8 @@
#endif
}}}
이는 다음과 같이 표현 가능하다.
{{{~cpp
{{{ 
~cpp
#pragma once

class CBoardBase {
@@ -50,10 +53,8 @@
.
.
}}}
단, pragma 전처리기는 de facto라서 정식 표준이 아니다. 따라서 사용에 대해 유의할 필요가 있다.[* pragma는 once외에도 다른 option도 존재한다.]

단, pragma 명령은 컴파일러에 따라 지원여부가 다르므로 사용에 대해 유의할 필요가 있다.
DeleteMe) once 외에도 #pragma 에 관한 다양한 옵션들이 존재한다.
DeleteMe) #pragma 는 거의 표준에 가깝다고 어디서 본 것 같습니다;;
== [Profiling] ==
[C++Profiling]
== Debugger 의 사용 ==
@@ -84,4 +85,4 @@

Reference : [http://support.intel.com/support/kr/performancetools/libraries/mkl/win/sb/cs-017282.htm Intel 라이브러리 연결 요령]
----
[도구분류]
[[include(틀:IDE)]] [도구분류]



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 beta3 까지 본것 같은데...
DeleteMe) .net 2005 발매기념 대규모 행사(설명, 시연, 세미나)가 예정에 있습니다. 사전 신청을 받더군요. 11월에는 확실히 나올듯.


학교에서는 2008년까지만 해도 Visual C++ 6.0을 많이 사용했으나 2008년 2학기에 홍병우 교수님이 Visual Studio 2008 사용을 권한 것을 계기로 최신 버전 환경이 갖추어졌다.

VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. )

VisualStudio 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, Debugger 사용, Profiling, Goto Definition

Bug


Class View 가 안나올때


IntelliSense 기능이 제대로 작동하지 않을때

일단 프로젝트를 닫는다. 일단 xxx.ncb 화일을 삭제해준 뒤 다시 프로젝트를 열어준다.

VisualAssist 를 사용한다면, Code Re-Parsing 기능을 실행해준다.

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]

Profiling

C++Profiling

Debugger 의 사용

의외로 Debugger 를 이용하지 않는 사람들이 있다. UnitTest 를 작성하면서 프로그래밍을 하지 않는다면, Debugger는 불가피하다. 학교 프로그래밍 수업때 정식으로 가르치지 않기 때문에 MSDN이나 온라인의 강좌, 알고 있는 학우들에게 물어보아 배울수 있다.
(More to come)


여러개의 Project 를 사용하기

예제 : ProjectTheCell (현재 진행중인 Othello Project)
(more to come)
VS.net 에서는 프로젝트 상위 개념으로 솔루션이 존재합니다. (6.0도 그랬나? WorkSpace라는 녀석이 있었던듯... 아무튼~). 여러 프로젝트를 한 솔루션에서 관리하는 게 상당히 편해 졌더군요. 시작 프로젝트를 설정하고, 프로젝트의 컴파일 순서를 결정하는 일도 할 수 있고요.

라이브러리 파일 링크 걸기

기본적으로 지정된 경로 밖에서 라이브러리를 사용해야 하는 경우가 있다. 몰랐다가 링크를 거느라 한참 고생한 김에 여기에 정리해본다.

VS 6.0

  • Project(프로젝트) » Settings(설정)를 선택합니다.
  • Link(연결) 탭을 선택합니다.
  • Category(카테고리) 드롭 다운 메뉴에서 Input(입력)을 선택합니다.
  • Object/library(개체/라이브러리) 모듈 부분에서 라이브러리 파일 이름을 추가합니다.
  • 그리고 라이브러리 경로를 이 라이브러리들의 위치에 추가해야 합니다. Additional library path(추가 라이브러리 경로)에 라이브러리 파일이 있는 폴더를 추가해 주세요.

VS.NET

  • View(보기) » Solution Explorer(솔루션 탐색기)를 선택합니다
  • Tools(도구) » Options(옵션) » Projects(프로젝트) » VC++ Directories(VC++ 디렉토리)를 선택합니다.
  • Show directories for:(다음 디렉토리 표시:) 드롭 다운 메뉴에서 Include Files(파일 포함)를 선택하고 include 파일이 위치한 디렉토리(예: C:\라이브러리폴더\include)를 입력합니다.
  • Show directories for:(다음 디렉토리 표시:) 드롭 다운 메뉴에서 Library Files(라이브러리 파일)를 선택하고 라이브러리 파일이 위치한 디렉토리(예: C:\라이브러리폴더\lib)를 입력합니다.
  • Show directories for:(다음 디렉토리 표시:) 드롭 다운 메뉴에서 Executable Files(실행 파일)를 선택하고 실행 파일이 위치한 디렉토리(예: C:\라이브러리폴더\bin)를 입력합니다.
  • 기본 도구 표시줄에서 Project(프로젝트) » Properties(속성) » Linker(링커) » Input(입력)을 선택하고 "Additional Dependencies(추가 의존관계)" 행에 필요한 라이브러리 파일 (예: abcd.lib)을 추가합니다.

  • Reference : Intel 라이브러리 연결 요령

    ----
    • [1] pragma는 once외에도 다른 option도 존재한다.
    Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2021-02-07 05:28:22
    Processing time 0.0428 sec