# Change BootLoader — C++ port Native Win32 port of `Change_bootloader\Change_bootloader.au3` with the same window, buttons, actions and messages. ## Build Requirements: Visual Studio 2022 (Desktop C++) and CMake 3.20+. ```bat build.cmd ``` Output: ``` build\Release\Change_BootLoader.exe ``` The executable is 32-bit, uses a static CRT (no VC++ redistributable), and requests administrator rights through the embedded manifest. ## How it works - The program must be started from the root of a PARAVIS flash drive, for example `F:\Change_BootLoader.exe`. - It derives the drive from its own path and checks for `\efi\Paravis\Boot\bootice.exe` and `\efi\Paravis\Boot\NOT.DEL`. - If those files are missing, it shows the original error and exits. - Seven buttons perform the same operations as the AutoIt version: - Legacy BIOS: XorBoot, Bootmgr, Grub4Dos, Grub2 - UEFI: Bootmgr, Grub2, Xorboot - Bootice, xcopy and the GRUB2 MBR helper script are invoked exactly like the AutoIt version. The helper script is `\efi\Paravis\Boot\grub2\bios\make-paravis-mbr.ps1`. ## Notes - The UI matches the AutoIt version (376 × 208, same fonts, positions, hover/pressed colors). - Message boxes are native `MessageBoxW` dialogs with the same titles and texts. - The debug log is disabled by default. Set `PARAVIS_DEBUG_LOG=1` to write `%TEMP%\cbl_cpp_debug.log`. - The GRUB2 Legacy action uses the same bootice `/sectors` commands as the AutoIt version. On some virtual disks bootice displays its own sector confirmation/error dialogs; on a real PARAVIS USB flash it behaves the same as the original. ## Repository layout ``` src/ C++ sources and resources legacy-au3/ original AutoIt script build.cmd release build ``` ## License MIT. See [`LICENSE`](LICENSE). This repository contains source code only. Third-party binaries used at runtime (`bootice.exe`, `xcopy`, `powershell.exe`) are not distributed here and must be supplied by the system or by the PARAVIS flash image.