An Automatic Build Incrementer for VC6 | CodeGuru

An Automatic Build Incrementer for VC6

Environment: Visual C++ 6.0 Visual Basic programmers have long had the ability to automatically increment the build number each time the program was compiled. Visual C++ programmers haven’t. Several weeks ago, I started trying to find a way to do automatically increment build numbers on each compile. I found several articles on the subject and […]

Written By
CodeGuru Staff
CodeGuru Staff
Jul 21, 2000
1 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Environment: Visual C++ 6.0

Visual Basic programmers have long had the ability to
automatically increment the build number each time the program was compiled. Visual
C++ programmers haven’t.

Several weeks ago, I started trying to find a way to do automatically increment
build numbers on each compile. I found several articles on the subject and some
source code but none of it did exactly what I wanted it to do, so I decided to write
my own incrementer.

Add the code to an existing macro
file or, if you don’t have an existing macro file, create one and add one dummy
macro so you can access the code snippet. Application_BeforeBuildStart() is a
Visual Studio defined event handler and although the code is in a macro file,
when you select the Tools|Macro menu item, you won’t see it, so you need at
least a dummy macro in the file to access the source code.

Note that these code snippets have been subjected to limited testing and
that you use them at your own risk. They work correctly in the test environment,
but you assume all risk for their use. I will not assume any
liability whatsoever for their failure to work correctly in your environment.

Please e-mail any comments, suggestions for improvement, problems, etc. to me.

Sub Application_BeforeBuildStart()
 ‘ written 7/11/00 by CCB Consulting
 ‘ e-mail any comments, corrections, etc. to support@ccbcon.com
 ‘ updated versions will be at www.ccbcon.com on the Code Snippets page
 ‘ invoked automatically before build starts
 ‘ will open the project’s *.rc file as text
 ‘ will search for the version info
 ‘ and will increment the build number
 dim oDoc
 dim sBuild
 dim sRCFile
 dim sOne
 dim sTwo
 dim iSelect
 dim lLineNbr
 dim bFound
 ‘get the name of the active project’s .rc file
 sRCFile = application.activeproject & “.rc”
 ‘open *.rc file as text
 set oDoc = Documents.Open(sRCFile, “Text”)
 ‘position to the correct section of the file
 oDoc.Selection.FindText ” FILEVERSION”, dsMatchCase
 ‘save the line number for the next search
 lLineNbr = oDoc.Selection.CurrentLine
 ‘use a regular expression search string for the first version search
 sOne = “[0-9]+,[0-9]+,[0-9]+,”
 ‘find the first string
 oDoc.Selection.FindText sOne, dsMatchRegExp
 if oDoc.Selection.CurrentLine = lLineNbr then
  ‘convert the regular expression to an absolute search string
  sOne = oDoc.Selection
  ‘build an absolute search string for the strings with embedded spaces
  sTwo = Replace(sOne, “,”, “, “)
  ‘move to the build number
  oDoc.Selection.CharRight
  ‘select the build number
  oDoc.Selection.WordRight dsExtend
  ‘increment the build number
  sBuild = oDoc.Selection + 1
  ‘replace the old build number with the new one
  oDoc.Selection = sBuild
  else ‘something went wrong
   msgbox “Version number 1 not found. Closing without changes.”
   oDoc.Close dsSaveChangesNo
   set oDoc = nothing
   exit sub
 end if
 ‘now change the other 3 occurences of the build number
 for iSelect = 2 to 4
  if iSelect = 2 then
   bFound = oDoc.Selection.FindText(sOne)
  else
   bFound = oDoc.Selection.FindText(sTwo)
  end if
  oDoc.Selection.CharRight
  oDoc.Selection.WordRight dsExtend
  oDoc.Selection = sBuild
  if bFound = False then
   msgbox “Version number ” & iSelect & ” not found. Closing without changes.”
   oDoc.Close dsSaveChangesNo
   set oDoc = nothing
   exit sub
  end if
 nextclose and save *.rc
 oDoc.Close dsSaveChangesYes
 set oDoc = nothing
End Sub

Downloads

Download source – 2 Kb

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.