1.1. 솔루션 디렉토리 정리 #
출력 디렉터리
$(SolutionDir)$\(ConfigurationName) $(SolutionDir)$\(ConfigurationName)_$(PlatformName)중간 디렉터리
$(SolutionDir)\obj\$(ConfigurationName)$(ProjectName) $(SolutionDir)\obj\$(ConfigurationName)_$(PlatformName)$(ProjectName)C/C++ > 추가 포함 디렉터리
$(SolutionDir)/src/libs링커 > 출력파일
$(OutDir)\이름변경.exe
참고
#ifdef _UNICODE #if defined _M_IX86 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_IA64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_X64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") #else #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") #endif #endif
1.2. 최적화 및 보안 옵션 #
* 최적화 옵션 /O2 추가 (VS2008 SP1이 VS2005 버전의 프로젝트를 가져왔을 때 최적화 옵션(/O2)가 활성화가 안 되는(프로젝트 속성 다이얼로그에서 선택은 된 것처럼 보이지만 Bold로 보이지 않음) 버그가 있다. 활성화 안 되어 있으면 활성화. * 버퍼 오버런 방어 옵션 컴파일 옵션 - /GS 링커 옵션 - /SafeSEH, /DynamicBase, /NxCompat /GS – 스택 기반 버퍼 오버런 탐지를 코드에 추가 /SafeSEH – 예외 처리기를 보호하는 링커 옵션 /DynamicBase – 이미지의 시작 주소를 난수화 /NXCompat - CPU의 데이터 실행 보호(DEP) 기능
1.3. 바이너리 삭제 #
@rem *.pch *.mdp *.ncb *.clw *.obj *.aps *.cpl *.awk *.exp *.idb @rem *.opt *.pdb *.map *.res *.ilk *.scc *.bsc *.sbr *.tlb *.plg @rem *.lib *.dll *.exe del *.pch *.mdp *.ncb *.clw *.obj *.aps *.cpl *.awk *.exp *.idb *.opt *.pdb *.map *.res *.ilk *.scc *.bsc *.sbr *.tlb *.plg *.lib *.dll *.exe exit /b 0
del.bat (310 Bytes)
2.1. NMake #
포함 검색 경로
"$(ProjectDir)";"$(WINDDK_ROOT)\inc\ddk";"$(WINDDK_ROOT)\inc\api"
빌드 명령줄
echo ------ Building MyDriver.sys: Release x86 ------ copy sources32 sources call e:\WinDDK\7600.16385.1\bin\setenv.bat e:\WinDDK\7600.16385.1\ chk x86 WXP cd /d $(ProjectDir) call build -cefgwZ
echo ------ Building MyDriver.sys: Release x64 ------ copy sources64 sources call e:\WinDDK\7600.16385.1\bin\setenv.bat e:\WinDDK\7600.16385.1\ chk x64 WIN7 cd /d $(ProjectDir) call build -cefgwZ
3.1. MetaScroll #
https://code.google.com/p/metalscroll/
VS2008까지 사용 가능. 추천 . VS2013부터는 이 기능이 기본으로 들어갔다. 스크롤 환경 설정 옵션에 포함되었다.
VS2008까지 사용 가능. 추천 . VS2013부터는 이 기능이 기본으로 들어갔다. 스크롤 환경 설정 옵션에 포함되었다.
3.2. Indent Guides #
https://marketplace.visualstudio.com/items?itemName=SteveDowerMSFT.IndentGuides
편집창에 괄호 Bracket 등에 의한 Indent에 가이드 라인 추가.
편집창에 괄호 Bracket 등에 의한 Indent에 가이드 라인 추가.
3.5. Favorite Documents #
https://visualstudiogallery.msdn.microsoft.com/d4ab8421-147f-4416-8038-d5f7fdcf6a56
VS 기본 책갈피보다 유용한 즐겨찾기 플러그인.
파일 단위로 즐겨찾기 추가 가능. 즐겨찾기한 목록이 솔루션 폴더에 파일로 떨어짐. 강력 추천 .
VS 기본 책갈피보다 유용한 즐겨찾기 플러그인.
파일 단위로 즐겨찾기 추가 가능. 즐겨찾기한 목록이 솔루션 폴더에 파일로 떨어짐. 강력 추천 .
3.6. Open XML Package Editor for Visual Studio #
https://marketplace.visualstudio.com/items?itemName=ChrisRae.OpenXMLPackageEditorforVisualStudio
XML Package(.xlsx, .pptx 등)를 VS에서 열 수 있는 플러그인.
XML Package(.xlsx, .pptx 등)를 VS에서 열 수 있는 플러그인.
3.7. Text Macros for Visual Studio 2012/2013/2015 #
https://visualstudiogallery.msdn.microsoft.com/8e2103b6-87cf-4fef-9410-a580c434b602
텍스트 반복 작업을 위한 텍스트 매크로.
텍스트 반복 작업을 위한 텍스트 매크로.
3.8. Productivity Power Tools for VS 2013/2015 #
https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.ProductivityPowerTools2013
https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.ProductivityPowerTools2015
https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.ProductivityPowerPack2017
https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.ProductivityPowerTools2015
https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.ProductivityPowerPack2017
MS 비주얼 스튜디오 개발팀이 직접 만들어 배포하는(버전 별로 있다) 생산성 향상 도구. 기본 기능보다 풍부한 기능을 제공한다.
10여가지 기능별로 켜고 끌 수 있어 불필요하다 느껴지는 건 끄고 사용할 수 있다. 특히 Match Margin 기능은 매우 유용한 도구.
10여가지 기능별로 켜고 끌 수 있어 불필요하다 느껴지는 건 끄고 사용할 수 있다. 특히 Match Margin 기능은 매우 유용한 도구.
쓰다 보니까 이것 없이 사용하는 건 불가능해질 정도다.
4.1. 다시 빌드 메뉴 삭제 #
프로젝트 빌드를 해야하는데 마우스가 미끄러져서 다시 빌드를 눌러버리면 굉장한 일이 일어나기 때문에─의존성 있는 프로젝트들이 다 정리가 되어버리면 조금 큰 솔루션은 다시 빌드하는데 수십 분 걸리게 된다. 말 그대로 사고(accident). 확인 버튼이라도 왜 안 달아둔건지 따지고 싶은 UI─다시 빌드 메뉴를 컨텍스트 메뉴에서 빼버리는 것을 강력히 추천한다. 정말 다시 빌드가 필요한 상황이 오면 상단 메뉴바 빌드 메뉴를 열어서 다시 빌드하면 된다.
Avoid accidental rebuild of a project in Visual Studio
http://stackoverflow.com/questions/1420344/avoid-accidental-rebuild-of-a-project-in-visual-studio
http://stackoverflow.com/questions/1420344/avoid-accidental-rebuild-of-a-project-in-visual-studio
1.
[도구>사용자 지정]
2.
[명령] 탭
3. 메뉴 모음 -
[빌드(B) | 프로젝트만]
등에서 다시 빌드, 정리 메뉴 삭제[PNG image (42.91 KB)]
5. 단축키 #
Ctrl-K, Ctrl-H : 바로가기 설정. ( 작업목록 창에서 확인가능 )
Ctrl-K,K : 북마크 설정 / 해제
Ctrl-K,L : 북마크 모두 해제
Ctrl-K,N : 북마크 다음으로 이동
Ctrl-K,P : 북마크 이전으로 이동
Ctrl-K,C : 선택한 블럭을 전부 코멘트
Ctrl-K,U : 선택한 블럭을 전부 언코멘트(코멘트 해제)
Ctrl-F3 : 현재 단어 찾기
Ctrl-F5 : 프로그램 시작
Ctrl-K,K : 북마크 설정 / 해제
Ctrl-K,L : 북마크 모두 해제
Ctrl-K,N : 북마크 다음으로 이동
Ctrl-K,P : 북마크 이전으로 이동
Ctrl-K,C : 선택한 블럭을 전부 코멘트
Ctrl-K,U : 선택한 블럭을 전부 언코멘트(코멘트 해제)
Ctrl-F3 : 현재 단어 찾기
-> F3 : 다음 찾기
Ctrl-F7 : 현 파일만 컴파일: 현 프로젝트만 빌드
Ctrl-Shift-B : 전체 프로젝트 빌드Ctrl-F5 : 프로그램 시작
Ctrl-I : 일치하는 글자 연속적으로 찾기
Ctrl+i 를 누르면 하단에 자세히보면, "증분검색" 이라는 텍스트가 나온다.
그러면 그때 찾기 원하는 단어를 입력할때마다 일치하는 위치로 바로바로
이동한다. (좋은기능)
타이핑은 "증분검색" 이라는 텍스트옆에 커서는 없지만 입력이된다.
입력하는 문자를 수정하려면, backspace로, 그만 찾으려면 엔터.
Ctrl+i 를 누르면 하단에 자세히보면, "증분검색" 이라는 텍스트가 나온다.
그러면 그때 찾기 원하는 단어를 입력할때마다 일치하는 위치로 바로바로
이동한다. (좋은기능)
타이핑은 "증분검색" 이라는 텍스트옆에 커서는 없지만 입력이된다.
입력하는 문자를 수정하려면, backspace로, 그만 찾으려면 엔터.
줄넘버 보여주기 : 도구 > 옵션 > 텍스트편집기 > 모든언어 > 자동줄번호 선택하면 됨.
Ctrl+ - (대시문자), Ctrl+Shift+ - :
현재 커서를 기억하는 Ctrl+F3(VS6에서), Ctrl+K,K(VS7에서) 와는 달리
사용자가 별도로 입력을 해주는건 없고, 단지 이전에 커서가 있었던곳으로
위 키를 누를 때마다 이동된다. (shift를 이용하면 역순)
현재 커서를 기억하는 Ctrl+F3(VS6에서), Ctrl+K,K(VS7에서) 와는 달리
사용자가 별도로 입력을 해주는건 없고, 단지 이전에 커서가 있었던곳으로
위 키를 누를 때마다 이동된다. (shift를 이용하면 역순)
Ctrl-F12 : 커서위치 내용의 선언으로 이동( 즉, 대략 헤더파일 프로토타입으로 이동)
F12 : 커서위치 내용의 정의로 이동( 즉, 대략 CPP파일 구현부로 이동)
Shift+Alt+F12 : 빠른기호찾기 ( 이거 찾기보다 좋더군요. 함수나 define등 아무거나에서 사용)
F12: 기호찾기. (s+a+f12 비교해볼것)
Ctrl-M, Ctrl-L : 소스파일의 함수헤더만 보이기 (구현부는 감추고) (토글 키)
Ctrl-M, Ctrl-M : 현재 커서가 위치한 함수를 접는다/편다. (토글 키)
Ctrl-M, Ctrl-M : 현재 커서가 위치한 함수를 접는다/편다. (토글 키)
#include "파일명" 에서 "파일명" 파일로 바로 직접이동
하고 싶을경우 -> Ctrl-Shift-G
하고 싶을경우 -> Ctrl-Shift-G
5.1. 편집 #
Ctrl-F : 찾기 대화상자
Ctrl-H : 바꾸기 대화상자
Ctrl-Shift-F : 파일들에서 찾기 대화상자
Ctrl-Shift-H : 파일들에서 바꾸기 대화상자
Ctrl-G : 해당 줄로 가기 (별로 필요없음)
Ctrl-K,Ctrl-F : 선택된 영역 자동 인덴트 (VS6의 Alt-F8기능)
Ctrl-] :괄호({,}) 쌍 찾기 : 괄호 앞이나 뒤에서 눌러서 닫거나,
여는 괄호이동
Ctrl-Shift-Spacebar : 함수이름편집중 툴팁으로나오는 함수와매개변수설명이 안나올경우, 강제로 나오게
Ctrl-H : 바꾸기 대화상자
Ctrl-Shift-F : 파일들에서 찾기 대화상자
Ctrl-Shift-H : 파일들에서 바꾸기 대화상자
Ctrl-G : 해당 줄로 가기 (별로 필요없음)
Ctrl-K,Ctrl-F : 선택된 영역 자동 인덴트 (VS6의 Alt-F8기능)
Ctrl-] :괄호({,}) 쌍 찾기 : 괄호 앞이나 뒤에서 눌러서 닫거나,
여는 괄호이동
Ctrl-Shift-Spacebar : 함수이름편집중 툴팁으로나오는 함수와매개변수설명이 안나올경우, 강제로 나오게
Alt-LButton ->Drag : 원하는 영역의 블럭을 세로로 잡기
Ctrl-Shift-R (키보드 레코딩) :
Ctrl-Shift-V (히스토리 붙이기) :
가끔 연속된 연속기만으로는 부족한경우가 있다.
이럴때, 몇번의 키동작으로 레코딩하여, 이것을 반복하고 싶은경우가있다.
이때 Ctrl-Shift-R 을 누르고, 원하는 동작들을 수행후, 다시 Ctrl+Shift+R을
눌러 종료한다. 이 중간동작을 원하는 위치에서 반복하고 싶다면
Ctrl-Shift-P 를 누른다.
이럴때, 몇번의 키동작으로 레코딩하여, 이것을 반복하고 싶은경우가있다.
이때 Ctrl-Shift-R 을 누르고, 원하는 동작들을 수행후, 다시 Ctrl+Shift+R을
눌러 종료한다. 이 중간동작을 원하는 위치에서 반복하고 싶다면
Ctrl-Shift-P 를 누른다.
Ctrl + V와는 달리 클립보드에 있는 복사된내용을 돌아가면서 붙여준다.
따로 복사를 해주거나 할 필요는 없다. 그냥 Ctrl+C로 계속 원하는것을
복사하면 된다.
Ctrl-Z : 이전으로 되돌리기따로 복사를 해주거나 할 필요는 없다. 그냥 Ctrl+C로 계속 원하는것을
복사하면 된다.
Ctrl-Shift-Z : 되돌렸다, 다시 복구하기