Visual Studio 팁

Visual Studio 2010

매크로

Alt+F11 누르면 매크로 편집 에디터가 나온다. 쓸만한 매크로 정리

프로젝트 빌드

' 빌드하고픈 프로젝트가 Set as StartUp Project 로 미리 지정되어 있어야 함
Sub BuildMyProject()
    DTE.ExcuteCommand( "File.SaveAll" )
    DTE.ExcuteCommand( "View.Output" )
    Dim  sb As SolutionBuild = DTE.Solution.SolutionBuild
    Dim projName As String = sb.StartupProjects( 0 )
    sb.BuildProject( sb.ActiveConfiguration.Name + "|" + sb.ActiveConfiguration.PlatformName, projName, False )
End Sub

FAQ?

빨간 언더라인 없애기

…는 요기서

C++ 파일의 코멘트를 Task List 에 추가

기본적으로 C++ 코멘트는 Task List 에 표시되지 않는다.1) 아래처럼 활성화

프로젝트의 디렉토리 설정

VS2008 까지는 lib, include, exe 따위의 디렉토리를 Tools→Options 을 통해 Visual Studio 전역적으로 지정이 가능했다. 하지만 프로젝트별로 지정할 수는 없었다.

VS2010 은 전역적으로 지정하는 것이 없어지고 대신 프로젝트별로 지정하게끔 바뀌었다. 단, 프로젝트가 많고 모두 같은 내용의 디렉토리 설정을 해야 할 경우 이는 매우 귀찮을 수 있다. 따라서 아래의 과정을 통해 VS2008 까지와 마찬가지로 일괄적으로 적용할 수 있다.

  1. 아무 프로젝트의 파일을 연다.
  2. 메뉴의 View→Other Windows→Property Manager 를 연다.
  3. 아무 프로젝트의 Debug / Release 에서 Microsoft.Cpp.Win32.user 를 연다.
  4. 여기에 설정한 값들은 모든 프로젝트에 공통적으로 적용된다.
2012/11/30 19:23

Visual Studio 2012

FAQ

  • 기존 Ctrl + W 로 단어단위로 선택했는데 VS2012 에서는 이게 없어졌다?
    • 단축키가 Ctrl + Alt + W 로 바뀌었다. 기존에 Ctrl + W 는 다른 단축키들의 first key 로 예약되어 있고 second key 로 이어지는 단축키들이 많은 관계로 Ctrl + W 를 다시 리맵하는 것 보다는 그냥 Ctrl + Alt + W 에 익숙해지던가 다른 키에 매핑하던가 아님 Ctrl + ←, → 를 빠르게 입력하여 단어를 선택하는게 나은듯 -_-
  • Visual Studio 2010 이 설치되어 있는 상태에서 VS2012 를 설치한 경우 kernel32.lib 를 찾을 수 없다는 에러가 나온다?
    1>LINK : fatal error LNK1104: cannot open file 'kernel32.lib'
  • 바로 위 현상과 비슷하게 Windows.h 가 없다고 나온다? 아 씁.
    • 원인은 위와 같으며 해결책도 위와 비슷하다. 포함 디렉토리안에 $(WindowsSDK_IncludePath) 를 추가해준다.
  • macro 기능이 없어졌다. 이를 대체하는 방법
    • 잘 쓰던 macro 기능이 2012 에서 없어졌다. MSmatt의 말에 따르면 사용율이 전체 개발자의 1% 정도여서 이번 버전에는 뺐댄다;
    • 대신 어느 용자분이 extension 을 만드심
    • 또는 macro 돌리고 싶은 부분을 notepad++ 로 복사한 후에 macro 돌리고 그걸 다시 복사해오는 방법이 있기도 함
2012/11/30 17:13 · z3moon

공통

커맨드라인으로 빌드하기

2010 기준으로 설명하겠다.

devenv.exe 를 사용하면 커맨드라인으로 빌드가 가능한데 커맨드라인의 옵션 및 자세한 설명은 여기서 확인 가능하고, 이제부터는 그중 빌드에 관해서만 설명하겠다.

일단 test.sln 솔루션을 debug 로 빌드하려면 아래와 같이 하면 된다.

devenv test.sln /build DEBUG

물론 build 대신 rebuild 를, DEBUG 대신 RELEASE 를 적용할 수도 있다.

헌데 이를 배치파일로 만들어놓고 실행하면 devenv.exe 를 찾지 못하여 빌드되지 않을 것이다. 이를 위해 아래와 같이 배치파일을 구성한다.

build_test.bat
@echo off
@call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VS\bin\vcvars32.bat"
devenv test.sln /build DEBUG
@pause

이제 잘 될 것이다.

참고로 솔루션파일 없이 c/cpp 파일 하나만 빌드하여 실행파일을 만들고 싶을 경우 여기를 참고하면 된다. 그리고 아래는 예

build_one_file.bat
@call "c:\Program Files\Microsoft Visual Studio 11.0\vc\bin\vcvars32.bat"
cl /EHsc test.c /Fetest.exe
@pause

위 코드는 test.c 파일 하나를 컴파일하여 test.exe 파일을 생성한다. /Fetest.exe 와 같이 옵션과 파일명을 붙여쓴다는 것의 주의

브레이크 포인트 설정하기

from http://kslive.tistory.com/40

소스상에서 중단점을 F9키를 눌러서 설정하지 않고 다른 방식으로 설정할 수 있다. 다음과 같은 문법으로 가능하다.

{[Function], [Source File], [Binary Module]}

이것을 브레이크포인트 함수필드에 넣으면 해당 문법에 상응하는 곳에서 중단된다.

External Tools 사용

외부 실행파일을 IDE 내에서 활용할 수 있도록 해준다.

Tools → External Tools 를 클릭하면 다이얼로그 박스가 나오고 다음과 같은 필드를 볼 수 있다.

  • Title - 말 그대로 타이틀
  • Command - 실행파일의 풀 경로
  • Arguments - 실행 파라메터
  • Initial directory - 실행하고자 하는 경로
  • Use Output window - IDE.output 창을 이용하여 결과를 출력할 것인지 여부. .com 실행파일을 이용 시 활성화되며, 이걸 체크하면 output 창에 결과가 출력되는 것을 확인할 수 있다.
  • Treat output as Unicode - output 창에 출력을 Unicode 로 할 것인지 여부.
  • Prompt for arguments - 파라메터를 실행시 물어본다.
  • Close on exit - .com 파일을 사용하고, Use Output window 를 Uncheck 할 경우 활성화되는데, 이것을 체크하면 모든 실행 후 자동으로 해당창이 닫힌다.

UnrealEngine3 에서 스크립트 빌드를 예로들어 설명하겠다.

  • Title : Build Script Debug
  • Command : < Full Path >\Win32\UTGame.com
  • Arguments : make -debug
  • Initial directory : $(TargetDir)..\..\

이제 메뉴의 Tools 를 열어보면 Build Script Debug 가 생긴걸 볼 수 있다.

참조 : https://udn.epicgames.com/Three/DebuggingTools

매크로 사용하기

IDE 에선 다양한 행위를 매크로로 기록해두고 사용이 가능하다. 여기선 UnrealEngine3 에서 스크립트 빌드를 예로들어 설명하겠다.

구현하고자 하는 매크로 시나리오는 이렇다. 일단 수정중인 모든 스크립트파일을 저장하고, IDE의 Output창을 활성화시키고, 마지막으로 언리얼스크립트의 빌드를 수행한다.

다음과 같이 해보자.

  1. Alt+F8 을 눌러보자. Macro Explorer 가 뜰 것이다.
  2. MyMacros → RecordingModule 이 보일 것이다. 이것을 열어보면 TemporaryMacro() 하나만 있는 텅 빈 껍데기 모듈이 보일 것이다. 이제 이곳에 Macro Recording 기능을 이용하여 내용을 채울 것이다.
  3. 리마인드 하자면, 우리가 할 내용은 다음과 같은 순서다. 모든파일저장 → Output창 활성화 → 언리얼스크립트 빌드
  4. Ctrl+Shift+R 을 누른다. 이제부터 하는 행위는 모두 MyMacros → RecordingModule::TemporaryMacro() 안에 저장될 것이다.
  5. File → Save All
  6. View → Output
  7. Tools → Build Script Debug (상기 섹션 참조)
  8. Strl+Shift+R 을 눌러 레코딩 종료
  9. MyMacros → RecordingModule 을 열어 TemporaryMacro 안에 내용이 채워진 것을 확인
  10. MyMacros → RecordingModule::TemporaryMacro() 안에 내용을 복사한 후, MyMacros 하위에 적절한 매크로를 만든 후 복사하여 사용
  11. IDE 키 바인딩을 활용하여 사용하면 더욱 편할것임

참조 :

자신만의 Visualizer 만들기

debugger 를 실행시키고 watch 나 local 창을 보면 변수의 값을 확인할 수 있다.

이 때 자신이 만든 특별한 타입의 변수를 원하는 형태로 볼 수 있게 해주는 기능을 제공한다.

…\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\autoexp.dat 파일에서 이것을 정의할 수 있으며

대략적인 사용법은 여기서 확인하시길

UE3 에서 Visualizer 추가

UnrealEngine3 를 사용하면서 필요한 디버깅 정보를 VS 에 연동시키는 방법

Data Breakpoint 사용하기

Breakpoints 창의 New 메뉴에 New Data Breakpoint 가 활성되지 않는다면 다음을 체크해보라.

프로젝트 우클릭 → Properties → 좌측에서 Debugging 섹션 → 우측의 Debugger Type 이 Native Only 인지 확인

Data Breakpoint 는 Native 환경에서만 가능하다는 것을 기억하자.

VisualStudio 의 크래시 원인 분석

이것이 도움이 될지도…

1) C# 이나 Visual Base 은 기본적으로 보여진다.