VC 에서 자동으로 빌드 넘버 증가하기

31367 
Created at 2006-12-28 19:39:09 
239   0   0   0  
프로그램들을 보면 빌드넘버를 제공하는 것을 볼 수 있습니다. 윈도우도 빌드넘버 2703등으로 빌드넘버를 제공하고 있습니다. 그러면 그런 프로그램들은 빌드를 할때 마다 1씩 어떻게 증가시켰는지 궁금하실텐데... 그러한 기능을 해주는 VC++ 매크로가 있어서 소개해 드립니다..

아래 페이지를 참고하시면 방법을 알 수 있습니다. 저는 첫번째 방법으로 VC++ 6.0에서 테스트 해보니 잘 되는 것을 확인했습니다. 가장 뒷번호가 빌드넘버가 되는 구성입니다. 한번쯤 프로젝트에 적용시켜보는 것도 재밌을것 같습니다.

msdn에서 해당 기능을 소개하고 있는 페이지 입니다.
http://support.microsoft.com/default.aspx?scid=kb;en-us;237870

비슷한 방법을 설명한 페이지 입니다.
http://www.codeproject.com/macro/autobuild.asp

닷넷에서 사용할 수 있는 방법을 설명한 페이지입니다.
http://www.codeguru.com/Csharp/.NET/net_vs_addins/visualstudioadd-ins/article.php/c5959

실제로 적용하기에는 문제가 있는 부분이 앞쪽 메이저 버전을 바꾸기가 쉽지 않다는 점 입니다. 매번 versionno.h를 열어서 바꿔줘야 하는데 불편함이 있죠. 년월일로 버전을 구성하도록 수정한 매크로 파일입니다. 년도, 월, 일, 빌드넘버로 자동 구성해 줍니다. 위의 msdn에서 제공하고 있는 버전에서 ReplaceText 부분만 수정한 것 입니다.

' ------------------------------------------------------------------------------
' FILE DESCRIPTION: version
' ------------------------------------------------------------------------------
Function GetProjectDir(FullName)
 
' VC++ doesn't provide any method for getting the path of the active project
' See the VB Script reference for more information on the VB Script functions
' used in this function
 
Dim proj_path
proj_path = Split(StrReverse(FullName),"",-1,1)
 
Dim count
count = UBound(proj_path)
 
Dim full_path
full_path = ""
Dim i
 
for i = 1 to count
 full_path = full_path & "" & proj_path(i)
next
 
GetProjectDir = StrReverse(full_path)
 
End Function
 

Sub ReplaceText(selection, count, incrementby)
 
' selection represents the TextSelection object
' count represents the position of the version number to be incremented
' incrementby represents a number that will be added to the existing version number
 
selection.WordRight dsMove, count
selection.WordRight dsExtend, 1
 
selection.Text = Year(Now)
 
selection.WordRight dsMove, 1
selection.WordRight dsExtend, 1
 
selection.Text = Month(Now)
 
selection.WordRight dsMove, 1
selection.WordRight dsExtend, 1
 
selection.Text = Day(Now)
 
selection.WordRight dsMove, 1
selection.WordRight dsExtend, 1
 
Dim str
str = selection.Text
str = str + incrementby
 
selection.Text = str
 
End Sub
 

Sub Application_BuildFinish(numError, numWarning)
 
' This event will be triggered after every build of a project
' You can check numError and/or numWarning to determine if you want to continue
' If numError <> 0 Then
    'exit sub
' Obtain the full path of the active project
Dim full_path
full_path = GetProjectDir(ActiveProject.FullName)
 
full_path = full_path & "versionno.h"
 
' Open the VersionNo.h file
Documents.Open full_path
 
' Obtain the TextSelection object
Dim selection
set selection = ActiveDocument.Selection
selection.StartOfDocument
 
' Increment the version information
ReplaceText selection, 3, 1
selection.LineDown
selection.StartOfLine
ReplaceText selection, 3, 1
selection.LineDown
selection.StartOfLine
ReplaceText selection, 4, 1
selection.LineDown
selection.StartOfLine
ReplaceText selection, 4, 1
 
ActiveDocument.Save
ActiveDocument.Close
 
End Sub



Tags: autobuild build version 윈도우즈 Share on Facebook Share on X

◀ PREVIOUS
네이버 검색엔진에 높은순위로 등록되는 방법
▶ NEXT
Internet Explorer가 자주 비정상 종료 할때
  댓글 0
로그인을 하시면 댓글을 등록 할 수 있습니다.
SIMILAR POSTS

Internet Explorer가 자주 비정상 종료 할때 (created at 2006-12-29)

GetDC()의 메모리 누수 막기 (created at 2006-12-27)

모달리스 다이얼로그 와 메모리 리크(Leaks) (created at 2006-12-27)

MFC의 TRACE() 출력 빼먹는 현상 (created at 2006-12-27)

간단히 WIN32에서 MFC의 메모리 누수 체크하는 방법 (created at 2006-12-27)

VC++ 6.0 에서 GDI+ 사용하기.. (created at 2006-12-27)

GDI+를 이용한 회전 3가지.... (created at 2006-12-27)

MFC의 GDI/GDI+ 리소스 누수 현상 (created at 2006-12-27)

UTF-8로 파일 저장하기 (created at 2006-12-22)

버퍼 오버 플로우 공격과 DEP (created at 2007-01-24)

DEP 기능 비활성화 (created at 2007-01-24)

윈도우 버전 알아내는 함수 (created at 2007-01-25)

mdb 파일의 암호깨기 (created at 2007-01-25)

WinGate 깔았더니 블루스크린이 떠요 (created at 2007-01-25)

MSN Live Messenger가 동작이 안되요 (created at 2007-01-26)

네임드 커널 오브젝트를 사용한 중복 실행 방지법 (created at 2007-01-26)

태스크 바에서 프로그램(윈도우) 제목 숨기기 (created at 2007-01-26)

태스크 바를 없애버리고 싶다 (created at 2007-01-26)

버튼으로 해당 윈도우 종료하기 (created at 2007-01-26)

리스트박스 엔터처리 (created at 2007-01-26)

뷰의 배경색 바꾸기 (created at 2007-01-26)

대화상자에 비트맵 올리기 (created at 2007-01-26)

다이얼로그 리소스대로 폼뷰 크기 설정하기 (created at 2007-01-26)

CD, 플로피등의 디스크 삽입 자동 판단루틴 (created at 2007-01-26)

키보드로 마우스 커서 움직이기 (created at 2007-01-26)

파일 등록정보 보여주기 (created at 2007-01-26)

여러가지 시스템 종료 기법 (created at 2007-01-26)

작업관리자에서 윈도우 감추기 (created at 2007-01-26)

Windows95/98 암호 알아내기 (created at 2007-01-28)

마우스 커서 모양바꾸기 (created at 2007-01-28)

Internet Explorer의 검색창에서 한글 입력이 안될때 (created at 2006-11-24)

프린터 인쇄 취소가 안될때 (created at 2006-11-24)

spoolsv.exe의 문제 cpu점유률 100% (created at 2006-11-24)

델파이로 긁어오는 HTML 페이지 (created at 2007-02-06)

virtual와 override 문의 사용법에 대해서 (created at 2007-02-06)

훅 인스턴스의 생성과 해제 (created at 2007-02-06)

Apple iPod Remote Control Protocol (created at 2007-02-06)

Region을 이용한 부정형 윈도 만들기 (created at 2006-11-16)

대문자, 소문자 변환 함수 (created at 2007-02-14)

PC에서 동영상 삭제가 안될때. (created at 2007-02-14)

유동 IP로 DNS 매핑하여 서비스 하는 방법 (created at 2006-10-14)

MS IE7.0 가세「툴바 전쟁」혈투 예고 (created at 2006-10-14)

어떤 디렉토리가 가장 큰지 알아내는 방법? (created at 2006-10-13)

이미지를 지정된 비율로 자르기 (crop) (created at 2006-10-10)

모니터 끄는 API (created at 2006-09-29)

File Search Sample Code (created at 2006-09-29)

String Find 알고리즘 (created at 2006-09-29)

HTTP Downloading Reference Source Code (created at 2006-09-29)

Application Event써서 Keyboard 받아내기 (created at 2006-09-29)

Web Browser Control에서 Enter키 먹게 하기 (created at 2006-09-29)

OTHER POSTS IN THE SAME CATEGORY

대화상자에 비트맵 올리기 (created at 2007-01-26)

뷰의 배경색 바꾸기 (created at 2007-01-26)

리스트박스 엔터처리 (created at 2007-01-26)

버튼으로 해당 윈도우 종료하기 (created at 2007-01-26)

태스크 바를 없애버리고 싶다 (created at 2007-01-26)

태스크 바에서 프로그램(윈도우) 제목 숨기기 (created at 2007-01-26)

네임드 커널 오브젝트를 사용한 중복 실행 방지법 (created at 2007-01-26)

MSN Live Messenger가 동작이 안되요 (created at 2007-01-26)

설치형 블로그 VS 가입형 블로그 (created at 2007-01-26)

WinGate 깔았더니 블루스크린이 떠요 (created at 2007-01-25)

mdb 파일의 암호깨기 (created at 2007-01-25)

윈도우 버전 알아내는 함수 (created at 2007-01-25)

USB 장치 연결/연결해제 이벤트 처리하기 (created at 2007-01-25)

버퍼 오버 플로우 공격과 DEP (created at 2007-01-24)

Internet Explorer가 자주 비정상 종료 할때 (created at 2006-12-29)

네이버 검색엔진에 높은순위로 등록되는 방법 (created at 2006-12-27)

GetDC()의 메모리 누수 막기 (created at 2006-12-27)

모달리스 다이얼로그 와 메모리 리크(Leaks) (created at 2006-12-27)

MFC의 TRACE() 출력 빼먹는 현상 (created at 2006-12-27)

간단히 WIN32에서 MFC의 메모리 누수 체크하는 방법 (created at 2006-12-27)

VC++ 6.0 에서 GDI+ 사용하기.. (created at 2006-12-27)

GDI+를 이용한 회전 3가지.... (created at 2006-12-27)

MFC의 GDI/GDI+ 리소스 누수 현상 (created at 2006-12-27)

JSP 페이지 이동 4가지 방법 및 특성 (created at 2006-12-26)

기념일계산,날짜계산해서....^^; 앤에게 사랑받으시길..... (created at 2006-12-22)

자바스크립트로 만든 빙고 게임 (created at 2006-12-22)

현재달의 첫째날 , 마지막날 (날짜,일자) 구하기 (created at 2006-12-22)

JPG 저장된 DB 이미지 JSP로 보여주기 (created at 2006-12-22)

스크립트 디버거 (created at 2006-12-22)

수많은 체크박스 중 몇개 체크했는지 확인 (created at 2006-12-22)

UPDATES

자리 마음에 안든다고 6급 공무원 패는 농협 조합장 (created at 2024-03-26)

85세 딸 짜장면 사주는 102세 어머니 (created at 2024-03-26)

1990년대 감각파 도둑 (created at 2024-03-26)

치매에 걸린 69살의 브루스 윌리스가 전부인 데미무어를 보고 한 말 (updated at 2024-03-22)

일제강점기가 더 살기 좋았을지도 모른다는 조수연 국민의힘 후보 - 친일파? (updated at 2024-03-14)

성일종 인재육성 강조하며 이토 히로부미 언급 - 인재 키운 선례? (updated at 2024-03-13)

경제는 대통령이 살리는 것이 아닙니다 라던 윤석열대통령 - 상황 안좋아지자 여러 전략을 펼쳤지만, 부작용 속출했던 2024년의 봄 (updated at 2024-03-13)

극빈의 생활을 하고 배운것이 없는 사람은 자유가 뭔지도 모를 뿐 아니라 왜 개인에게 필요한지에 대한 필요성을 못느낀다는 윤석열 대통령 (updated at 2024-03-08)

조선일보를 안본다는 사람들이 말하는 그 이유 - 천황폐하, 전두환 각하, 김일성 장군 만세? (created at 2024-03-07)

광폭타이어를 장착하면 성능이 좋아질거라는 착각 (updated at 2024-03-03)

면허시험장에서 면허갱신하면 하루만에 끝나나? (updated at 2024-03-03)

신한은행/신한투자증권 금융거래 종합보고서 다운로드 방법 (updated at 2024-02-26)

100년 된 일본 장난감 회사가 내놓은 변신 기술에 난리난 과학계 (created at 2024-02-26)

알리에서 발견한 한글 지원하는 가성비 쩌는 무선 기계식키보드 (updated at 2024-02-25)

쌍팔년도가 1988년인줄 알았던 1인 (updated at 2024-02-23)

이쁜 색으로 변신한 테슬라 사이버트럭 (created at 2024-02-23)

2024년 카타르 아시안컵 4강전 전날 한국 대표팀 내부에 있었던 이강인의 폭주 (updated at 2024-02-21)

강릉 맛집 지도 (updated at 2024-02-20)

간이 안좋을 때 나타나는 증상 20가지 (updated at 2024-02-20)

배설물을 이용하여 일본에 저항했던 독립운동가 조명하 (updated at 2024-02-20)

요건 몰랐지롱? 이순신을 사랑한 외국인 (created at 2024-02-20)

원빈도 머리빨 (created at 2024-02-19)

대표적인 대한민국의 미남배우 중 하나인 원빈 (created at 2024-02-19)

백제의 건국 시조 온조왕 (updated at 2024-02-19)

700년동안 대한민국 고대국가의 한축이었던 백제시대 (created at 2024-02-19)

대머리들에게 주는 대머리의 조언 (created at 2024-02-17)

일본의 여성 락그룹 프린세스 프린세스의 "다이아몬드" (created at 2024-02-17)

결혼식 직전 연락두절된 신랑 (created at 2024-02-17)

대한민국 축구팀 파문으로 인해 중국 소셜미디어까지 등장한 탁구 전도사 이강인 (updated at 2024-02-16)

조국의 반격으로 흥미진진하게 흘러가는 한국의 정치판 - 데뷰와 동시에 한동훈 장관에게 던진 4개의 질문 (updated at 2024-02-15)

2024년 카타르 아시안컵 4강전 전날 내분사태로 갑자기 회자되는 이승우선수의 친화력 (created at 2024-02-15)

카카오뱅크 금융거래종합보고서/잔액증명서/거래내역서 발급 방법 (created at 2024-02-14)

아이가 최고의 스승이었다 (created at 2024-02-13)

이제는 국민 유행어로 등극한 한동훈의 "싫으면 시집가" (updated at 2024-02-13)

설 연휴 잔소리 메뉴판 - 이제 잔소리 하기전에 요금부터... (updated at 2024-02-10)

로버트 드니로의 70년 전 모습 (created at 2024-02-08)

카메라 어플로 만들어본 슈퍼걸 - 엄... 최종 작품은 왠지... (created at 2024-02-08)

앞트임 하고 새롭게 태어난 대한민국의 젊은 용사 (created at 2024-02-08)

비가 억수로 내리던 2024년의 2월 어느날 캘리포니아의 밤 카니예 웨스트와 그의 아나 비앙카 센소리 (updated at 2024-02-08)

스케방형사 1화 - 수수께끼의 전학소녀사키 (created at 2024-02-05)

백제와 일본의 교류가 가장 활발했던 시기는 근초고왕 시대 (created at 2024-02-05)

일에 찌들은 아빠가 꿈에서 깨어나지 않자 구출해주는 짱구 (created at 2024-02-03)

이제는 할아버지가 된 휴 그랜트(Hugh Grant)가 블랙핑크 콘서트에 다녀온 후 소감 (created at 2024-02-03)

다시 한번 감상해보는 추억의 날리면 패러디 (updated at 2024-02-01)

25년간 노예로 살다가 돌아온 남동생 (created at 2024-02-01)

가까우면서도 멀게 느껴지는 나라 일본 (created at 2024-02-01)

친구와 비교하다가 이혼하게 된 부부 (created at 2024-02-01)

요꼬 미나미노의 바람의 마도리걸(風のマドリガル) (created at 2024-01-30)

옛날 어린이들이 신문을 챙겨봤던 이유 (created at 2024-01-30)

Remaster된 요꼬 미나미노(南野陽子)의 판도라의 연인(パンドラの恋人) (updated at 2024-01-30)