E D R , A S I H C RSS

Visual Studio

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.0285 sec