stdafx.h 추가


프로젝트 속성 변경



stdafx.cpp 추가 후 #include "stdafx.h"

stdafx.cpp 속성 변경





'tool > VS10' 카테고리의 다른 글

삽질 기록  (0) 2013.08.19
윈도우8에서 항상 관리자 권한으로 실행  (0) 2013.03.15
fatal error C1083: 미리 컴파일된 헤더 파일을 열 수 없습니다.‎  (0) 2012.08.08
원격 디버깅  (0) 2012.07.10
c++ 단축키  (0) 2011.10.17
블로그 이미지

란마12

,

Ankh SVN

tool/VersionControl 2012. 8. 21. 10:05

 Visual Studio 2010에서 Ankh SVN플러그인을 사용하는 방법을 알아보자.

  먼저 Ankh SVN을 다운 받아 설치한다. 
    
  구글에서 ankh svn으로 검색해서 최신 버전으로 다운 받으면 된다.
  ( 정식 사이트에서 다운 받으려면 가입해야 하므로 귀찮으신 분은 우측 상단에 있는 것을 다운 받으면 된다.)

  설치는 그냥 설치할 폴더정하고 약관에 동의하는 정도가 다 이므로 따로 다루지 않겠다.

  설치가 완료되면 Visual Studio 를 실행한다.

1. 저장소 추가.

사용자 삽입 이미지

  위 화면에 보이는 것 처럼  보기 -> Repository Explorer 를 선택하면 아래와 같은 화면이 나온다.

사용자 삽입 이미지

  그러면 화면의 붉은 원 안에 있는 Add 버튼을 누르고 아래와 같이 SVN 저장소의 주소를 입력한다.

사용자 삽입 이미지

  OK 버튼을 누르면 저장소에 접근하기 위한 ID와 PW를 요구하는데, 입력하고 나면 아래와 같이 저장소가 추가된 것을 볼 수 있다.

사용자 삽입 이미지


 2. 저장소에 프로젝트 추가.

 이제 저장소 추가가 끝났으니 저장소에 프로젝트를 추가해 보자.

 기존에 작성하던 프로젝트(또는 솔루션)가 있다면 프로젝트를 열면 되고, 아니면 새로 프로젝트를 생성하자.

사용자 삽입 이미지

솔루션 탐색기에서 추가할 솔루션 또는 프로젝트를 선택하고 마우스 우클릭 메뉴에서 Add Solution to Subversion을 선택한다.

사용자 삽입 이미지

  적절하게 프로젝트 이름을 지정하고, Repository Url에 아까 추가한 주소를 넣으면 아래에 표시해 준다. (필요에 따라 비밀번호를 물어볼 수 있다. 만약 화면 중앙에 저장소가 표시 되지 않는다면, 접근 권한이 없거나 비밀번호 등에 문제가 있을 수 있으므로 확인하기 바란다.)

  그리고 마지막으로 Add trunk Folder for Project 를 체크 한다. 이 것은 SVN에서 브랜치나 태그를 관리하기 위해 사용하는 방식으로 주된 개발은 trunk 폴더에서 이루어지며, branches 나 tags 같은 폴더를 생성해 브랜치나 태그를 저장해 두기 위함이다.

  OK 버튼을 누르면 아래와 같이 커밋 코멘트를 입력할 수가 있다. 특별히 적을 것이 없다면 안 써도 되지만, 간략하게라도 추가되는 것이나 변경된 것들에 대해 작성해 주면 좋다.

사용자 삽입 이미지

OK를 누르면 저장소에 전송이 되고 아래 그림과 같이 솔루션 탐색기의 파일들 앞에 파란색 + 표시가 나타난 것을 볼 수 있다.

사용자 삽입 이미지

  프로젝트가 커밋이 되었지만, 실제 파일들까지 추가된 것이 아니라 폴더만 생성된 것이기 때문에 위 파일들을 다시 추가해 줘야 한다.

사용자 삽입 이미지

  다시 솔루션에서 우클릭해서 Commit Solution Changes 를 선택하면 아래와 같이 추가될 파일들이 나타나는데 불필요한 파일은 제외하고 커밋하면 된다. 주로 바이너리 파일이나 생성이 가능한 것들은 추가하지 않는것이 좋겠다. 기본적으로 필요한 것들은 추가하면 된다. 여기서도 마찬가지로 코멘트를 남긴다.
사용자 삽입 이미지

  Ok를 누르면 커밋을 수행한다. 커밋이 끝나면 우측 솔루션 탐색기의 파일 앞에 있던 파란색 + 표시가 사라지고 체크 표시가 되어 있는 것을 볼 수 있다.

사용자 삽입 이미지
이 상태는 저장소에 있는 파일과 현재 내가 가진 파일들이 일치한다는 것을 나타낸다. 만약 다른 코드를 수정하게 되면 체크표시 대신에 빨간색 사각형 표시가 나타나 수정되었음을 표시해 준다.

여기까지가 저장소에 프로젝트를 추가하는 방법이었다.

3. 저장소에서 프로젝트 가져오기.

 Visual Studio를 실행하고 SVN 저장소에서 코드를 체크아웃 하기 위해서는 1번 저장소 추가에서 살펴본 대로 보기 -> Repository Explorer 를 선택한다.  만약 저장소를 추가하지 않았다면 1번을 보고 저장소를 추가하도록 한다.

 저장소가 추가되어 있다면, 아래와 같이 해당 저장소에 포함된 프로젝트가 나타나게 된다. svn/manghon을 선탣하면 저장소 manghon에 포함된 모든 (지금은 BrainTrainer 밖에 없지만..) 프로젝트를 포함하는 것이며, BrainTrainer 프로젝트만 선택하면 그 하위에 포함된 것들만 포함하게 된다.
 체크아웃할 프로젝트를 선택하면 붉은 원 안에 체크아웃 버튼이 활성화 된다.
사용자 삽입 이미지

 체크아웃 버튼을 누르면 아래와 같이 선택한 저장소의 경로가 나오고, Type으로 최신 버전 또는 날짜, 또는 Revision 으로 체크항 수 있게 선택할 수 있다.
  적당한 Path를 선택해 Ok 버튼을 누르면 체크아웃된다.

사용자 삽입 이미지

  체크아웃한 프로젝트를 바로 열어 주지는 않으므로 체크아웃한 폴더에서 프로젝트 파일을 열어 보면 저장소에서 받아온 버전으로 구성되어 있는 것을 볼 수 있다.

4. Lock 과 변경사항 커밋

  Lock은 저장소에서 체크아웃한 코드를 수정하기 전에 다른 사람이 해당 파일 또는 프로젝트를 수정하지 못하도록 잠그는 기능을 말한다. 물론 Lock을 하지 않고 여러 사람이 동시에 수정을 하고 각자 커밋을 하게 되면 충돌이 발생할 수 있으므로 적절하게 Lock을 사용하는 것이 좋다. 하지만 무분별한 Lock 사용은 여러 사람의 동시 작업의 효율을 떨어트릴 수 있으므로 주의해야 한다.
  Lock는 다음과 같이 수행할 수 있다.
사용자 삽입 이미지

  Subversion의 Lock 를 선택하면 아래와 같이 Lock을 걸 파일을 선택하는 창이 나온다. (이 예에서는 Form1.cs 파일을 선택하고 Lock을 선택한 화면이다.) 선택한 파일과 관련된 파일을 보여준다.

사용자 삽입 이미지

  적절한 메시지와 함께 Lock 걸 수 있다. Lock을 걸게 되면 솔루션 탐색기에서 체크표시 아래에 동그란 원 표시가 추가되어 Lock되었음을 나타낸다. Unlock도 마찬가지로 수행할 수 있다.

  수정한 파일을 커밋할 때에는 Commit를 선택하고 커밋할 파일들 선택한 다음, 코멘트를 추가하면 된다.
  만약 수정하다가 실패해서 다시 저장소에 있는 버전으로 되돌리고 싶을 경우 Revert 를 선택하면 된다.
  그리고 현재 파일 또는 프로젝트의 변경 히스토리를 보려면 View History를 선택하면 되고, 수정한 파일이나 선택한 파일이 저장소에 있는 파일과 얼마나 다른지(어디가 수정되었는지)를 보기위해서는 Show Changes를 선택하면 된다.

  그리고 중요한 것은 여러 사람이 저장소를 사용할 경우 각자 체크아웃 받아가서 커밋을 수행하다보면 내가 가진 파일이 최신이 아닌 경우가 생기게 되는데, 이때에는 Update to Latest Version을 통하여 선택한 파일 또는 프로젝트 전체를 저장소에서 최신으로 가져올 수 있다. 
사용자 삽입 이미지


이상으로 Visual Studio 2010에서 Ankh SVN 사용법을 알아보았다. 기타 SVN관련 사용법은 검색을 통하여 더 자세히 알 수 있을 것이다. 



출처: http://manghon.com/blog/category/%C0%DA%B7%E1%BD%C7/Development%20Tools

블로그 이미지

란마12

,

1. 프로젝트 속성 -> 미리 컴파일된 헤더: 사용(/Yu)

2. 미리 컴파일된 헤더로 지정된 파일이 StdAfx.h라면

   StdAfx.cpp 속성 -> 미리 컴파일된 헤더: 만들기(Yc)

'tool > VS10' 카테고리의 다른 글

윈도우8에서 항상 관리자 권한으로 실행  (0) 2013.03.15
'미리 컴파일된 헤더' 수동 등록  (0) 2012.12.06
원격 디버깅  (0) 2012.07.10
c++ 단축키  (0) 2011.10.17
Why does Visual Studio 2010 create ipch folder and .sdf file?  (0) 2011.05.05
블로그 이미지

란마12

,

원격 디버깅

tool/VS10 2012. 7. 10. 20:21

Visual Studio 2008을 설치했다면 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\에 가면 있을 것이다. 64bit x64 폴더에 있을 것이다실행파일은 msvsmon.exe이다.

 

프로그램을 실행할 PC(test pc)에 디버깅 모니터 툴을 설치한다없다면 위에 x86 폴더나

x64폴더를 컴퓨터 환경에 맞게 그대로 복사해도 된다.

 


 * 원격 디버깅 시작

 

프로그램 소스 중 멈출 곳 바로 위에 __debugbreak() 함수를 넣어준다.

  (__debugbreak() 함수는 브레이크 포인트를 걸은 것과 같은 효과를 지닌다.)

   컴파일하고 실행할 준비를 한다.




Visual Sutdio 원격 디버깅 모니터를 실행한다.

Visual Studio 원격 디버깅 모니터 툴 >> 도구 >> 옵션에 가자.

인증 안 함(네이티브 전용)을 선택

모든 사용자가 디버깅할 수 있도록 허용에 체크

최대 유휴 시간() 0으로 설정한다.

 


[참고] Windows XP SP2 이상에서는 원격 디버깅 모니터를 실행할 경우 '네트워크 액세스: 로컬 계정에 대한 공유 및 보안' 로컬 보안 정책 옵션이 '게스트 전용 - 로컬 사용자를 게스트로 인증'으로 설정되어 있으므로 Visual Studio 원격 디버깅 모니터에서 응용 프로그램을 디버깅할 수 없습니다. 이것은 로컬 보안 설정' 관리도구에서 구성할 수 있습니다.' 라는 경고가 뜬다.

이를 풀기 위해서는 '제어판-관리도구-로컬보안정책'을 실행한 후, '로컬정책-보안옵션' 항목 중 '네트워크 액세스: 로컬 계정에 대한 공유 및 보안' 항목의 값을 '일반 - 로컬 사용자를 그대로 인증'으로 바꿔주면 된다.





  



이제 프로그램을 실행하면 위와 같이 오류 관련 경고 윈도우가 뜬다.

 

디버깅할 PC에 Visual Studio 2008(이하 VS2008라 칭함)로 가자

 



도구 >> 프로세스에 연결에 들어가자.

전송에 원격(네이티브 전용인증 안 함)으로 설정한다.

정자에 디버깅하려고 하는 PC IP를 적는다.

이제 사용 가능한 프로세스에 디버깅 할 프로세스를 선택하고 연결을 누른다.

그리고 나서 아까 오류 관련 윈도우 경고 창이 뜬 곳에서 보내지 않음을 누른다.

 




중단을 누르고 재미난 디버깅의 세계에 빠져들어 보자.

 

 

실행되는 PC에 운영체제가 Vista인 경우

 

Vista에서 오류 보고 윈도우가 안 뜰 수도 있고뜨더라도 프로그램이 종료되는 상황이 발생할 것이다예를 들어서 DLL이나 Service 프로그램을 디버깅할 때 말이다하지만 걱정하지 마시길~ Vistavsjitdebugger.exe 을 시스템 폴더(system32)에 설치하고 그 뒤에 vsjit.reg 파일을 레지스트리에 등록하면 된다그러면 아래와 같은 오류 보고 창에

  프로그램 디버그 항목이 하나 더 뜨는데 그것을 누르면 된다.



 
 VS2008
에서 도구 >> 프로세스에 연결이 안될 수 있는데 그럴 때는 Visual Studio 원격 디버깅 모니터 툴을 관리자 권한으로 실행해야 한다그리고 해당 PC에 네트워크 연결이 안될 경우에는 방화벽 옵션을 해제하면 된다.

  

* Tip

 

 -  __debugbreak() 함수 대신에 getchar(), Sleep() 등을 사용해서 VS2008에서 attach를 할 수 있도록 해 주면 간편하게 원격 디버깅을 할 수 있다.


출처: http://blog.daum.net/jangbi/16474779

블로그 이미지

란마12

,

doxygen

tool 2011. 12. 6. 13:23
+ http://www.stack.nl/~dimitri/doxygen/download.html

+ 한글 설정
 - expert 탭에서,
       Project 항목
         DOXYFILE_ENCODING : EUC-KR
         OUTPUT_LANGUAGE : Korean-en
        Input 항목 
          INPUT_ENCODING : CP949
  - Error: failed to translate characters from CP949 to UTF-8: check INPUT_ENCODING
    오류가 발생하는 파일을 메모장에서 UTF-8로 저장한다.

+ 매크로
 - 도구 -> 매크로 -> 매크로 IDE 에 스크립트 추가
 - 단축키 추가

'tool' 카테고리의 다른 글

7z 압축파일 자동풀기 실행프로그램 만들기  (0) 2014.10.17
탐색기에서 현재 경로 커맨드창으로 열기  (0) 2014.04.23
crash dump  (0) 2011.11.11
WinDbg  (0) 2011.01.30
VC .Net에서 산출물(output/intermediate) 관리하기  (0) 2010.12.23
블로그 이미지

란마12

,

crash dump

tool 2011. 11. 11. 12:05

+ windows 7

C:\Users\yonjh\AppData\Local\CrashDumps 경로에 '전체 덤프' 파일 쌓음
미니덤프는 DumpType을 1로

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
"DumpFolder"=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,\
  00,41,00,54,00,41,00,25,00,5c,00,43,00,72,00,61,00,73,00,68,00,44,00,75,00,\
  6d,00,70,00,73,00,00,00
"DumpCount"=dword:00000010
"DumpType"=dword:00000002
"CustomDumpFlags"=dword:00000000

'tool' 카테고리의 다른 글

탐색기에서 현재 경로 커맨드창으로 열기  (0) 2014.04.23
doxygen  (0) 2011.12.06
WinDbg  (0) 2011.01.30
VC .Net에서 산출물(output/intermediate) 관리하기  (0) 2010.12.23
vs2008 프로젝트속성 상속  (0) 2010.09.27
블로그 이미지

란마12

,

c++ 단축키

tool/VS10 2011. 10. 17. 17:36



블로그 이미지

란마12

,

You’ll find a folder named ipch and a large file with file extension .sdf if you use Visual Studio 2010. They exist for precompiled header files and intellisense. You don’t like it, but you’d still like to use intellisense and precompiled header. Visual Studio 2010 let you change the location of these temporary files. Open you Visual Studio 2010, and left click “Tools > Options”, choose “Text Editor > C/C++ > Advanced”, scroll down until “Fallback Location” appears. Make “Always use Fallback Location” and “Do Not Warn if Fallback Location” to be “True”, and choose a “Fallback Location” you like. Just like the below.

VisualStudio2010-FallbackLocation

Close Visual Studio 2010, and delete ipch and .sdf file, open VS. Now the folder and the file will be created at the location you specified.

http://wronso.com/blog/553/why-does-visual-studio-2010-create-ipch-folder-and-sdf-file.html

블로그 이미지

란마12

,

WinDbg

tool 2011. 1. 30. 21:55

+ MyApp.exe를 디버그할 경우...
+ Dr. watson을 기본 디버거로 설정
 - drwtsn32 -i
+ 디버기 프로그램 속성보기
 - lmvm MyApp
+ 심볼경로
 - .symfix [운영체제 심볼이 저장될 경로]
 - .sympath+ [MyApp.exe의 심볼파일이 저장된 경로]
 - .reload
+ 콜스택 보기: k

'tool' 카테고리의 다른 글

doxygen  (0) 2011.12.06
crash dump  (0) 2011.11.11
VC .Net에서 산출물(output/intermediate) 관리하기  (0) 2010.12.23
vs2008 프로젝트속성 상속  (0) 2010.09.27
Visual Studio 2008과 Windows 98  (0) 2009.06.12
블로그 이미지

란마12

,

VC .Net 2002 기준입니다.

 

프로젝트 빌드 산출물은 최종 산출물(output)과 중간 산출물(intermediate)가 있습니다.

확장자별로 구분하면 다음과 같죠.

 

최종 산출물

-----------

exe : 실행 파일

dll : 동적링크 라이브러리

(*) lib : 정적링크 라이브러리

 

최종 산출물과 같은 폴더에 위치해야 하나 최종 산출물은 아닌, 개발자용 파일들

-----------

exp : dll 익스포트 정보 파일

pdb : 프로그램 데이터베이스 (디버그 정보)

ilk : 점증적 링크를 위한 정보 파일

(*) lib : 임포트 라이브러리 (DLL인 경우)

 

** lib는 2종류가 있습니다. 정적링크 라이브러리인 경우와 dll을 위한 임포트 라이브러리인 경우입니다.

(물론 기술적으로 내용은 같다고 볼 수 있죠)

 

중간 산출물

--------

obj : 오브젝트 코드

pch : 프리컴파일 정보

idb : 재빌드 최소화 정보 (잘 모름, 탐색기 설명에 이렇게 나옴)

res : 리소스 컴파일 결과

tli : 타입 라이브러리에서 생성된 인라인 함수 소스 파일

tlh : 타입 라이브러리에서 생성된 헤더 파일

map: 링커가 생성하는 정보 파일 (디폴트로 생성 안되지만 옵션 지정시 생성됨)

 

이정도 입니다.

 

그리고 VC 프로젝트에서는  최종 산출물 생성 경로와 중간 산출물 생성 경로, 이렇게 2가지를 지정할 수 있습니다.

모두 프로젝트 프로퍼티에서 지정하죠.

이후, 디폴트 상태에서 각 파일들의 생성 경로는 직접 세부 옵션에서 지정해줘야 합니다.

이때 $(OutDir), $(IntDir) 이런 매크로를 사용하면 편하죠.

 

*** 추가 정보 ***

 

(1) pdb 파일

pdb는 디버그 정보 파일입니다.

왠만하면 디버그 버전이든 릴리즈 버전이든 디버그 정보가 항상 생성되도록 하는 게 좋겠죠.

그리고 실행모듈(exe, dll)과 같은 폴더에 위치해야 합니다.

릴리즈 빌드에서 pdb가 안 나오게 하려면 링커 옵션에서 디버그 정보 생성 옵션을 끄면 되겠죠.

 

(2) ilk 파일

이건 점증적 링크(incremental link) 기능을 사용하는 경우 링커가 생성하는 파일입니다.

그러니 최종 산출물이 아닌데도 불구하고 exe, dll과 같은 폴더에 생성됩니다.

보통은 릴리즈 빌드에선 링커 최적화 기능을 사용하고, 이때는 점증적 링크 기능을 못 쓰기 때문에 ilk가 생성되지 않는데요, 최종 산출물이 너무 커서 릴리즈 빌드에서도 점증적 링크를 사용한다면 ilk 파일이 생깁니다.

 

(3) dll 관련 파일

dll은 파일이 좀 많습니다.

기본 산출물이 dll, lib (임포트 라이브러리), exp(익스포트정보) 이렇죠.

lib와 exp 경로를 각각 지정할 수 있는 걸로 알았는데 지금 찾아보니 그런 옵션이 없네요.

lib 경로를 지정하면 exp 경로도 결정되나 봅니다.

lib 경로는 링커 고급 옵션, 임포트 라이브러리 옵션으로 지정합니다(/IMPLIB 옵션).

즉 output 경로를 지정하면 dll 생성 위치가 결정되고 임포트 라이브러리 경로를 지정하면 lib, exp 생성 위치가 결정됩니다.

  http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=6174

'tool' 카테고리의 다른 글

doxygen  (0) 2011.12.06
crash dump  (0) 2011.11.11
WinDbg  (0) 2011.01.30
vs2008 프로젝트속성 상속  (0) 2010.09.27
Visual Studio 2008과 Windows 98  (0) 2009.06.12
블로그 이미지

란마12

,