More actions
imported>공간도형 No edit summary |
(Repair MoniWiki formatting after migration) |
||
| (15 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
VisualStudio 는 Microsoft 에서 개발한 Windows용 IDE 환경이다. 이 환경에서는 Visual C++, Visual Basic, Visual C# 등 여러 언어의 개발환경이 함께하며, 최신 버전은 [[VisualStudio|Visual Studio]] 2012이다. | [[VisualStudio]] 는 Microsoft 에서 개발한 Windows용 IDE 환경이다. 이 환경에서는 Visual C++, Visual Basic, Visual C# 등 여러 언어의 개발환경이 함께하며, 최신 버전은 [[VisualStudio|Visual Studio]] 2012이다. | ||
== 연혁 == | |||
* 1998.06 Visual Studio 6.0 | * 1998.06 Visual Studio 6.0 | ||
* 2002.02 Visual Studio .Net | * 2002.02 Visual Studio .Net | ||
* 2005.11 Visual Studio 2005 | * 2005.11 :[[VisualStudio2005]] Visual Studio 2005 | ||
* 2007.11 Visual Studio 2008 | * 2007.11 Visual Studio 2008 | ||
* 2010.04 Visual Studio 2010 | * 2010.04 Visual Studio 2010 | ||
* 2012.09 Visual Studio 2012 | * 2012.09 Visual Studio 2012 | ||
[[DeleteMe]]) .net 2005 beta3 까지 본것 같은데... | |||
DeleteMe) .net 2005 beta3 까지 본것 같은데... | [[DeleteMe]]) .net 2005 발매기념 대규모 행사(설명, 시연, 세미나)가 예정에 있습니다. 사전 신청을 받더군요. 11월에는 확실히 나올듯. | ||
DeleteMe) .net 2005 발매기념 대규모 행사(설명, 시연, 세미나)가 예정에 있습니다. 사전 신청을 받더군요. 11월에는 확실히 나올듯. | |||
---- | ---- | ||
학교에서는 | 학교에서는 2008년까지만 해도 Visual C++ 6.0을 많이 사용했으나 2008년 2학기에 홍병우 교수님이 Visual Studio 2008 사용을 권한 것을 계기로 최신 버전 환경이 갖추어졌다. | ||
VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. ) | VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. ) | ||
VisualStudio 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, Debugger 사용, [[Profiling]], Goto Definition | [[VisualStudio]] 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, :Debugging Debugger 사용, [[Profiling]], Goto Definition | ||
== Bug == | == Bug == | ||
| Line 28: | Line 24: | ||
일단 프로젝트를 닫는다. 일단 xxx.ncb 화일을 삭제해준 뒤 다시 프로젝트를 열어준다. | 일단 프로젝트를 닫는다. 일단 xxx.ncb 화일을 삭제해준 뒤 다시 프로젝트를 열어준다. | ||
VisualAssist 를 사용한다면, Code Re-Parsing 기능을 실행해준다. | [[VisualAssist]] 를 사용한다면, Code Re-Parsing 기능을 실행해준다. | ||
== pragma once == | == pragma once == | ||
C++ 에서는 자바에서의 import 의 명령과 달리 해당 헤더화일에 대한 pre-processor 의 기능으로서 'include' 를 한다. 그러다 보니 해당 클래스나 함수 등에 redefinition 문제가 발생한다. 이를 방지하는 방법으로 하나는 #ifndef - #endif 등의 명령을 쓰는것이고 하나는 pragma once 이다. | C++ 에서는 자바에서의 import 의 명령과 달리 해당 헤더화일에 대한 pre-processor 의 기능으로서 'include' 를 한다. 그러다 보니 해당 클래스나 함수 등에 redefinition 문제가 발생한다. 이를 방지하는 방법으로 하나는 #ifndef - #endif 등의 명령을 쓰는것이고 하나는 pragma once 이다. | ||
다음은 예제를 참조. | 다음은 예제를 참조. | ||
~cpp | |||
#ifndef _CBOARDBASE_H_ // _CBOARDBASE_H_ 가 preprocessor 로 선언되지 않았을 경우 추가된다. | #ifndef _CBOARDBASE_H_ // _CBOARDBASE_H_ 가 preprocessor 로 선언되지 않았을 경우 추가된다. | ||
#define _CBOARDBASE_H_ | #define _CBOARDBASE_H_ | ||
| Line 43: | Line 41: | ||
#endif | #endif | ||
이는 다음과 같이 표현 가능하다. | 이는 다음과 같이 표현 가능하다. | ||
~cpp | |||
#pragma once | #pragma once | ||
| Line 51: | Line 50: | ||
. | . | ||
. | . | ||
단, pragma 전처리기는 de facto라서 정식 표준이 아니다. 따라서 사용에 대해 유의할 필요가 있다. ''(pragma는 once외에도 다른 option도 존재한다.)'' | |||
== [[Profiling]] == | == [[Profiling]] == | ||
C++Profiling | |||
== Debugger 의 사용 == | == Debugger 의 사용 == | ||
의외로 Debugger 를 이용하지 않는 사람들이 있다. UnitTest 를 작성하면서 프로그래밍을 하지 않는다면, Debugger는 불가피하다. 학교 프로그래밍 수업때 정식으로 가르치지 않기 때문에 MSDN이나 온라인의 강좌, 알고 있는 학우들에게 물어보아 배울수 있다. | 의외로 Debugger 를 이용하지 않는 사람들이 있다. [[UnitTest]] 를 작성하면서 프로그래밍을 하지 않는다면, Debugger는 불가피하다. 학교 프로그래밍 수업때 정식으로 가르치지 않기 때문에 MSDN이나 온라인의 강좌, 알고 있는 학우들에게 물어보아 배울수 있다. | ||
(More to come) | (More to come) | ||
| Line 85: | Line 82: | ||
Reference : [http://support.intel.com/support/kr/performancetools/libraries/mkl/win/sb/cs-017282.htm Intel 라이브러리 연결 요령] | Reference : [http://support.intel.com/support/kr/performancetools/libraries/mkl/win/sb/cs-017282.htm Intel 라이브러리 연결 요령] | ||
---- | ---- | ||
[[도구분류]] | {{:틀:IDE}} [[도구분류]] | ||
Latest revision as of 00:34, 29 March 2026
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 :VisualStudio2005 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 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, :Debugging 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라서 정식 표준이 아니다. 따라서 사용에 대해 유의할 필요가 있다. (pragma는 once외에도 다른 option도 존재한다.)
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 라이브러리 연결 요령
- 주의! 텍스트 에디터 추가하지 말것
- vi는 텍스트 에디터이고 emacs는 Lisp컴파일러입니다.
- IDE는 통합 개발툴로써 순정상태(플러그인이나 기타 도구를 사용하지 않은상태)에서 컴파일 소스편집 디버그 할수 있는 것을 말합니다.
- 크롬 개발자 도구는 다되지만 IDE취급 안 하는건 함정
| IDE 종류 | ||||
| Visual Studio | Eclipse | NetBeans | IntelliJ | XCode |