A simple, small calculator placed discreetly near the Windows Taskbar or anywhere on the screen
0

Configure Feed

Select the types of activity you want to include in your feed.

feat: progressive build number in version field 4

Field 4 of VERSIONINFO becomes a committed, progressive build counter
that increments on every build, for granular build-to-build comparison.
Fields 1-3 (3.0.1) stay manual and remain the only part shown in About.

- version.h: semantic version (single source of truth) + counter include
- TaskbarCalculator.rc2: entire VS_VERSION_INFO, macro-driven, editor-safe
- TaskbarCalculator.rc: version block removed, .rc2 wired via TEXTINCLUDE 3
and the #ifndef APSTUDIO_INVOKED region
- TaskbarCalculator.vcxproj: IncrementBuildCounter target (pre-ResourceCompile)
- BuildCounter.txt: committed counter (seed 1); version_build.h generated + gitignored

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Marco Maroni (Jul 17, 2026, 12:47 PM +0200) 1b3f001a 944b0c5d

+80
+3
.gitignore
··· 202 202 *.msix 203 203 *.appxbundle 204 204 *.msixbundle 205 + 206 + # Auto-generated per-build version counter (BuildCounter.txt is committed) 207 + version_build.h
+1
BuildCounter.txt
··· 1 + 4
TaskbarCalculator.rc

This is a binary file and will not be displayed.

+45
TaskbarCalculator.rc2
··· 1 + // Hand-maintained resources — NOT touched by the Visual Studio resource editor. 2 + // Included from TaskbarCalculator.rc via the #ifndef APSTUDIO_INVOKED region. 3 + 4 + #include "version.h" 5 + 6 + #define VER_STRINGIZE2(x) #x 7 + #define VER_STRINGIZE(x) VER_STRINGIZE2(x) 8 + #define VER_VERSION_STR \ 9 + VER_STRINGIZE(VER_MAJOR) "." VER_STRINGIZE(VER_MINOR) "." \ 10 + VER_STRINGIZE(VER_BUILD) "." VER_STRINGIZE(VER_BUILDNUM) 11 + 12 + LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT 13 + 14 + VS_VERSION_INFO VERSIONINFO 15 + FILEVERSION VER_MAJOR,VER_MINOR,VER_BUILD,VER_BUILDNUM 16 + PRODUCTVERSION VER_MAJOR,VER_MINOR,VER_BUILD,VER_BUILDNUM 17 + FILEFLAGSMASK 0x3fL 18 + #ifdef _DEBUG 19 + FILEFLAGS 0x1L 20 + #else 21 + FILEFLAGS 0x0L 22 + #endif 23 + FILEOS 0x40004L 24 + FILETYPE 0x2L 25 + FILESUBTYPE 0x0L 26 + BEGIN 27 + BLOCK "StringFileInfo" 28 + BEGIN 29 + BLOCK "040004b0" 30 + BEGIN 31 + VALUE "CompanyName", "Marco Maroni" 32 + VALUE "FileDescription", "Taskbar Calculator" 33 + VALUE "FileVersion", VER_VERSION_STR 34 + VALUE "InternalName", "TaskbarCalculator.exe" 35 + VALUE "LegalCopyright", "Copyright (C) 2001-2019" 36 + VALUE "OriginalFilename", "TaskbarCalculator.exe" 37 + VALUE "ProductName", "Taskbar Calculator" 38 + VALUE "ProductVersion", VER_VERSION_STR 39 + END 40 + END 41 + BLOCK "VarFileInfo" 42 + BEGIN 43 + VALUE "Translation", 0x400, 1200 44 + END 45 + END
+17
TaskbarCalculator.vcxproj
··· 129 129 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 130 130 <ImportGroup Label="ExtensionTargets"> 131 131 </ImportGroup> 132 + <Target Name="IncrementBuildCounter" BeforeTargets="ResourceCompile"> 133 + <PropertyGroup> 134 + <BuildCounterFile>$(MSBuildProjectDirectory)\BuildCounter.txt</BuildCounterFile> 135 + <BuildNumberHeader>$(MSBuildProjectDirectory)\version_build.h</BuildNumberHeader> 136 + </PropertyGroup> 137 + <ReadLinesFromFile File="$(BuildCounterFile)" Condition="Exists('$(BuildCounterFile)')"> 138 + <Output TaskParameter="Lines" ItemName="_BuildCounterLines" /> 139 + </ReadLinesFromFile> 140 + <PropertyGroup> 141 + <_OldBuildCounter>@(_BuildCounterLines)</_OldBuildCounter> 142 + <_OldBuildCounter Condition="'$(_OldBuildCounter)' == ''">0</_OldBuildCounter> 143 + <_NewBuildCounter>$([MSBuild]::Add($(_OldBuildCounter), 1))</_NewBuildCounter> 144 + </PropertyGroup> 145 + <WriteLinesToFile File="$(BuildCounterFile)" Lines="$(_NewBuildCounter)" Overwrite="true" /> 146 + <WriteLinesToFile File="$(BuildNumberHeader)" Lines="#define VER_BUILDNUM $(_NewBuildCounter)" Overwrite="true" /> 147 + <Message Importance="high" Text="TaskbarCalculator build number: $(_NewBuildCounter)" /> 148 + </Target> 132 149 </Project>
+14
version.h
··· 1 + #pragma once 2 + 3 + // Semantic version — edit these by hand (NOT in the VS resource editor). 4 + #define VER_MAJOR 3 5 + #define VER_MINOR 0 6 + #define VER_BUILD 1 7 + 8 + // Per-build counter. version_build.h is regenerated on every build by the 9 + // IncrementBuildCounter MSBuild target (BeforeTargets="ResourceCompile"), so it 10 + // always exists at resource-compile time. The #ifndef is a safety fallback. 11 + #include "version_build.h" 12 + #ifndef VER_BUILDNUM 13 + # define VER_BUILDNUM 0 14 + #endif