Change Log

Released: 2018-03-27

  • Offical support for VS2017 15.6.3 (MSVC 19.13.26129.0).
  • Fix Recoding of /DEBUG:FASTLINK linked modules when debugging under VS2017 15.6.1+ (VS now writes to the PDB at runtime).
  • Ignore /DEFAULTLIB:onecore.lib introduced by msvcrt[d].lib under VS2017 15.6.3 which could cause linking to fail.
  • Improve detection of Local VC Toolset lib dir when obj files are stripped.
  • Fixed fallback error when looking for the linker in the compiler directory.
  • Cleaned up logging during Find Changes Recode phase.

Released: 2018-03-06

  • Local VC Toolsets are now supported with Recode.
  • Fix when Recoding the same remapped source file more than once.
  • Fix stubbing of members dependent on packed template arguments.
  • Fix assert when evaluating pre-VS2010 DLL dependencies.
  • Reduced verbosity of non-critical Recode parsing warnings.
  • Minor UI fixes.

Released: 2018-02-01

  • Official support for VS2017 15.5.6 (MSVC 19.12.25835.0).
  • Fix Recode failure with template parameter packs using ellipsis ie. VariadicTemplate<types...>.
  • Fix Recode failure when /Zc:wchar_t- is used with <locale> header.
  • Prevent Recode UI going into an unresponsive state when cancelling a Recode.

Released: 2018-01-26

  • Official support for VS2017 15.5.3 (MSVC 19.12.25834.0).
  • Support for FastBuild remapped drive compilation caching.
  • Recode logs for a debug session now stored in a .rlogs directory.
  • Added Explore Logs button to Recode panel to open log directory.
  • Reduced VSP memory usage and improved recovery for low-memory situations.
  • Improved link diagnostics.

Released: 2017-12-08

  • Official support for VS2017 15.5 (MSVC 19.12.25830.0).
  • Support for non-standard MSVC offsetof implementation (and similar variants).
  • Improved and optimized constexpr handling within Recode.
  • Fix for rare issue when obj section relocations overflow.
  • Prevent spurious blank lines being printed to the log during Recode.
  • Define __RECODE__ during preprocessing to allow workarounds for MSVC preprocessing bugs.

Released: 2017-11-23

  • Correctly preserve /FI (Force Include) compile arguments after the first Recode.
  • Fix failure with types defined inside global variable declarations where type is forward declared.
  • Fix failure to Recode using VS2010 linker with VS2015 without previous VS installations available.

Released: 2017-10-13

  • Fix bug where output from MSVC wasn’t logged in certain situations.
  • Add VS2017 15.4 (MSVC 19.11.25547) as a supported MSVC version.
  • Add VS2015 Update 3 Compiler Optimization Hotfix (19.0.24218) as a supported MSVC version.
  • Reduced verbosity of warning recode: no symbol found for [qualname] (publicname).
  • Silence unnecessary warning: #pragma once in main file in clang output.

Released: 2017-09-27

  • Fix stack overflow crash caused by deep macro recursion in some code bases.

Released: 2017-09-25

  • Fix issues relating to new TLS support globals appearing due to Recoding.
  • Fix Recoding of scoped enums used as partial template parameters for static members.
  • Suppress log noise caused by (ignorable) warning C4291.
  • Improved general compatibility by preventing stub generation for unused template members.
  • Fixed various issues using boost.
  • Support for latest release of VS2017 (15.3.5).

Released: 2017-09-12

  • VSIX installer now used instead of MSI to allow full VS2017 compatibility.
  • Admin rights no longer needed for per-user installation.
  • Support for latest release of VS2017 (15.3.3).
  • Recode binaries now part of VSIX installation.
  • Fix TLS stubbing for non-incrementally linked VS2017 15.3.x builds.
  • Improved incomplete array dimension lookup when initializer is available.
  • Fix Recoding of certain template reference parameters using namespaces.
  • Fix issue where same file may appear on the Recode edit list twice.
  • Prevent superfluous new-lines in log output.
  • Attempt to fallback on using VC 14.10 toolset if VC 14.11 is unavailable.
  • Warn if /DEBUG:FASTLINK support is broken due to MS regression in VS 15.3.x.
  • Added a Save Log button to Recode UI.
  • Indicate skipped (no work to do) Recode state more clearly via popup notification.

Released: 2017-06-21

  • Fixed several issues impacting Havok 2016 SDK users.
  • Fix for variadic template static members.
  • Fix for template incomplete array static members.
  • Fix for template static members where the type has a custom new operator.
  • Improved support for template static members using initializer lists.

Released: 2017-05-09

  • Fixed failure with implicitly inaccessible template type parameters on static members.
  • Reduced log spam caused by redundant clang diagnostic.

Released: 2017-04-24

  • Allow fallback to installed vcvars*.bat file if relative version can’t be found.
  • Recode license key reservations can now be retired if no longer in use.

Released: 2017-04-11

  • Improved reliability of partial PDB (/DEBUG:FASTLINK) conversion.

Released: 2017-04-10

  • Support for VS2017.1 update.
  • Fixed /DEBUG:FASTLINK support if distributed/redirected compilation is in use.
  • Fixed global references to abstract classes (resolves issue with boost::system::error_category).

Released: 2017-04-04

  • Official VS2017 support.
  • Adds support for the /DEBUG:FASTLINK linker option (partial PDBs).
  • Fixed preprocessing of code reliant on MSVC specific preprocessing (Havok etc.)
  • Greatly improved support for static members in templated types.
  • Improved and expanded search for DLL dependencies when resolving DLL imports.
  • Now supports adding new template specializations (with static members) at runtime.
  • Now supports inline record type declaration within global declarations.
  • Now supports inline declaration of calling convention on global function pointers.
  • Now supports multiply included headers (without header guards).
  • Now supports global declarations across #if/#include directives.
  • Pause process immediately option is saved between VS restarts.
  • Improved static local Recode reliability.
  • Dropped support for VS2010.
  • Requires 64-bit Windows.
  • Smaller installation.
  • New icons.

Released: 2017-01-31

  • Fix for .tls section layout issue with unaligned variables.
  • Fix update issue in preparation for Recode 3.

Released: 2016-11-17

  • Error List items created by Recode are now correctly cleared before Recodes and debug sessions.
  • Fixed issues with disabled Recode button and file tracking due to async solution loading.
  • Fixed patches being linked against the wrong version of ucrt.lib.
  • Show linker verbose output if it fails with LNK1104 (cannot open lib).
  • Prevent Recode being enabled without a real solution being loaded.

Released: 2016-11-04

  • Fixed rare crash in handling of auto lambda functors using inherited this pointers.
  • Offical support for MSVC 2015.3 Hotfix 2 (and below)
  • Additional improvments in MSVC parsing support.

Released: 2016-07-11

  • Fixed handling of explicit extern template instantiations.
  • Improved handling of templated static members specialized to lambdas.
  • Resolved issue with static member constexpr data.
  • Official support for VS2015.3.
  • Added Test with Recode option to code editor context menu.
  • Added Show Recode Log button to Recode file pane.
  • Further standardized diagnostics.
  • New and improved icons.

Released: 2016-06-20

  • Improved FastBuild detection logic to fix issues with Recoding distributed compilands.
  • Add support for Recoding global array references.
  • Fixed stack overflow in parsing code in rare situation with unqualified template lookup.
  • Improved warnings with name of DLL imported static members used in inline functions.
  • Enable C++14 support if VS2015+ compiler is used.

Released: 2016-04-26

  • Fix handling of __pragma(comment(linker, "")).

Released: 2016-04-25

  • Fix bug with empty macros set via /D command-line.
  • Emit error diagnostic when encountering an unsupported static local TLS variable.
  • VS2015.2 supported.

Released: 2016-04-04

  • Fix license key reservation when behind an authenticated proxy server.

Released: 2016-03-22

  • Fix globals using private/protected inner template types.

Released: 2016-02-23

  • Fix indirectly specialized static members. Resolves issue with latest Havok SDK.
  • Added support for __pragma(comment(lib, "foo.lib")) usage.
  • Correctly preserve CVR qualifiers when stubbing incomplete arrays.

Released: 2016-02-16

  • Fix issue when incomplete array typedef is used as static member. Resolves a Havok 2015 issue.
  • Recode protect coverage extended to more functions.
  • General code analysis improvements.

Released: 2016-02-05

  • Implemented batch Test with Recode on projects & folders via the solution explorer.
  • VSP now restores the previous output pane (usually Debug) after a successful Recode.
  • Fixed rare issue using deoptimize with __declspec(noreturn) functions.
  • Fixed VS2015 fallback logic for determining compiler path with distributed builds.
  • Eliminated unnecessary warnings relating to Recode protect.

Released: 2016-01-14

  • Official support for VS2015.1.
  • Support for thread_local storage class (VS2015+).
  • Fix rare issue with updates download on high-latency connections.
  • Improved performance and reduced stalls during debug for exception recovery logic.

Released: 2015-12-16

  • Support Recoding shared obj/lib files linked by two or more loaded modules.
  • Fix for failure in rare cases with source paths containing parent (..) directives.
  • Fix for rare crash in live stack analysis using VS2015 (DIA140).
  • Disabled unnecessary C4275 warning during Recoding.

Released: 2015-11-23

  • Fix for Recode failure if Pause process immediately is disabled in Recode Options.

Released: 2015-11-20

  • Allow Recoding explicitly extern const globals with initializers.
  • Allow Recoding explicitly extern globals declared in namespaces.
  • Recode now uses /bigobj by default to avoid failures with large source/unity files.
  • Fix unity file splitting if UNIX style paths were passed to the compiler.
  • Improved debugger reliability while a Recode build is in progress.
  • Prevent debugger timeout when awaiting Recode completion for large source files.
  • Improve reliability of save all before Recode by retrying if it fails initially (VS bug).
  • Fix spurious warnings about CRT init and unnecessary delay if patch build fails.
  • VS2015: Fixed Recode of file static data within namespaces.

Released: 2015-11-09

  • Fix issue with boost auto_link.hpp by allowing some unguarded multiple includes.
  • Improved diagnostics for unity splitting.
  • Reduced warnings.

Released: 2015-11-02

  • Fix WOW64 DLL redirection for subdirectories under c:\windows\system32\.
  • Show Recode status panel on first edit during debug to improve usability.
  • Internal improvements and updates.

Released: 2015-10-26

  • Improved caching and cleaning of build data to improve performance.
  • Fixed issue with thread-local static members. [RC6]

Released: 2015-10-19

  • VS2015: Support VS2015 static local and thread-safe init guard detection.
  • VS2015: Fixed issue leading to “LNK1101: incorrect MSPDB140.DLL version” error when linking patch.
  • VS2015: Skip modules linked using the /DEBUG:FASTLINK (unsupported due to DIA limitations).
  • VS2012: Added support for VS2012 Update 5 tool-chain.
  • Improved handling of merged symbols when only one of the merged symbols survives patching.
  • Improved static local variable preservation with multiple static locals in one function.
  • Fixed leak of temporary response files during patch compilation.
  • Fall-back to earlier DIA if Recoding VS2010 modules in VS2015 environment (bug in DIA140). [RC5]

Released: 2015-09-04

  • Fixed failure to install VS2015 VSP if other VS versions were installed.
  • Improved logging for link diagnostics. [RC4]

Released: 2015-08-27

  • Added support for targeted diagnostic logging.
  • Added timers. [RC3]

Released: 2015-08-26

  • Disable /Gy (Function Level-Linking) & /Gw (Optimize Global Data) for patch generation.
  • Improved IO error logging.
  • Optimized logging. [RC2]

Released: 2015-08-21

  • Added option to immediately pause process reducing CPU/IO contention during patch build.
  • Demoted error to warning where public symbol has no corresponding function/thunk symbol. [RC1]

Released: 2015-08-19

  • Optimized macro handling giving 5%-15% reduction in typical Recode times.
  • Statistics log level added to give hierarchical performance timings and stats.
  • Fixed invalid warning due to incorrect size calculation of incomplete array types. [Beta]

Released: 2015-08-14

  • Correctly pack 1-byte TLS variables in section layout.
  • Workaround stale TLS symbols (compiler bug) in PDB data that prevented Recode.
  • TLS section layout validation enabled to ensure reliability.
  • Ignore resource-only DLL’s when Recoding.
  • Detect compiler generated weak symbols, avoiding unnecessary warnings.
  • Improve reliability of Recoding small functions in non-incremental modules.
  • Unity file splitting success/failure logging clarified.
  • Improved Recode reliability of static locals when using native x64 compiler.
  • Preliminary VS2015 RTM support. [Alpha]

Released: 2015-07-27

  • Incremental linking no longer required for Recoding.
  • Directly linked lib dependencies supported for Recode.
  • Use Library Dependency Inputs no longer required.
  • Improved reliability of patch injection when virtual address space is crowded.
  • Warning when patching currently executing functions.
  • Current installed version shown on update dialog.

Released: 2015-06-11

  • Fix for uninitialized string buffer that could cause random Recode failures.
  • Private key server support for enterprise license management.
  • Improved licensing UI.

Released: 2015-05-06

  • Fix for global variable initializers containing #if/#endif directives.
  • Fix for bug where Recode could incorrectly reuse the original obj file directory.
  • Fix to ensure clean up of Recode generated obj files once Recoding has completed.
  • Improved license key time remaining display.

Released: 2015-04-30

  • Recode now falls back on searching all in-process DLL modules when resolving imported symbols.
  • Fix for issue with DEFINE_CLSID & DEFINE_IID macros used by XAudio2.h.
  • Improved diagnostics if Recode updates are blocked by firewall rules.
  • Log performance improvements.

Released: 2015-04-02

  • Recode errors and warnings now appear in the Visual Studio Error List window.
  • Reduced log spam from “warning: cannot preserve specializations” common in STL code.
  • Fixed a rare crash when handling static member specializations.

Released: 2015-03-26

  • Fix for failed Recode if source file is above compiler current directory.

Released: 2015-03-25

  • Fix for incomplete array static members required for Havok compatibility.
  • Fix for method local extern variables required for Havok compatibility.

Released: 2015-03-23

  • Unity file splitting reimplemented, falls back on compiling unity file if split fails.
  • Compilation fully parallelized without requiring original compilands built with /MP.
  • Improved static local patching when variables require one-time construction/initialization.
  • Force use of compiler tool-chain in environments where linker version differs from compiler version.
  • Improved diagnostics should Recode license key request fail.
  • Correctly handle defines assigned to string for code analysis.
  • Fixed warnings relating to MSVC version macros during code analysis.
  • Corrected value for __cplusplus define during code analysis (MSVC uses 199711L).
  • Fixed occasional crash during cancellation of Recode compilation.

Released: 2015-02-18

  • Fix: File static variables were not resolved if obj file name didn’t match the source file.
  • Fix: Recode options are now correctly inherited by the compiland/unity files.
  • Improved reliability for static members of class templates.
  • FastBuild compatibility improvements for parent directory relative includes.
  • Improved diagnostics in case no Recode compatible modules were discovered.
  • Better diagnostic hints provided when no file changes were found.
  • Find modification algorithm optimized.

Released: 2015-02-10

  • Fix: Support FastBuild distributed compilation.

Released: 2015-02-09

  • Improved support for preserving globals in anonymous namespaces.
  • Fix: Support FastBuild generated preprocessed unity files.
  • Fix: Support for VS2015 CTP5 x86 native tool-chain.

Released: 2015-02-05

  • Derive cl.exe path from compiland tool version info where possible.
  • Improve handling of template static members.

Released: 2015-02-02

  • Derive cl.exe path from compilands before falling back on linker directory.
  • Improved diagnostics for failure to resolve build environment variables.

Released: 2015-01-29

  • Improved support for distributed FastBuild builds.
  • Extended debug diagnostics support for rewrite issues.
  • Fix: Specialized template members using construction style initialization.

Released: 2015-01-22

  • Support FastBuild generated vcxproj files using <CustomBuild> items types.
  • Recode success/failure result now more explicit in the log output.
  • Fix: The cl.exe /analyze option would cause Recode to fail.
  • Fix: Remember existing installation when upgrading to preserve any customized path.

Released: 2015-01-15

  • Update dialog is now non-modal and minimizable. Taskbar used for download feedback.
  • Fix: VS could crash if two solutions with the same name were opened on different paths.

Released: 2015-01-13

  • Fix: Workaround for missing MFC DLL export CDockingManager::m_SDTheme.
  • Fix: Final inject could fail if base module candidate lacked symbols.

Released: 2015-01-13

  • Reduced log level for “constant with external linkage updated” from warning to note.
  • Fix: Duplicate DLL exported explicit class instantiations could cause error C2961.

Released: 2015-01-12

  • Improved support for DLL imported static members in specializations.
  • Diagnostics improved by clarifying output sections.
  • Fix: Static members could cause linking to fail across two or more compilands.
  • Fix: ATL CString specializations could break patch linking.
  • Fix: Ignorable non-incremental modules would cause patch inject to fail.

Released: 2015-01-08

  • Improved handling of specialized static members using previously unseen specializations.
  • Infer OS & CRT libs paths from known libs to improve patch linking reliability.

Released: 2014-12-19

  • Support for linking ordinal based DLL’s (such as MFC).
  • Dump linker output if error code is unexpected ie. LNK1104.
  • Ignore cl.exe /showIncludes option for patch compiles to avoid log spam.
  • Support for overqualified static data member declarations (seen in MFC).
  • Fix: Ignore #pragma comment(lib/linker, “”) directives to avoid link issues.
  • Fix: Implicitly exported out-of-line template methods could fail.

Released: 2014-08-12

  • Add support for VS2013 Update 3.
  • Fix: Stubbing TLS globals with call style initializers could fail.

Released: 2014-07-31

  • License management improvements.
  • Fix: Fixed Recoding of compound declare and define global pointers.
  • Fix: __declspec(dllexport) globals could fail to stub in rare cases.

Released: 2014-07-16

  • Improved PDB search algorithm for PDB files built outside the module output directory.
  • Licensing improvements to ensure Recode license keys are renewed promptly.
  • Fix: Prevent inline methods with static locals failing to Recode due to optimizations.
  • Fix: Allow /FI when it’s used to specify the PCH header via /Yu.

Released: 2014-06-27

  • Fix: Forced includes for PCH - Forced include (/FI) would fail with Create PCH (/Yc)

Released: 2014-06-26

  • New Update System - Update system improved with reminders and download verification.
  • New License System - Online key system implemented ready for online management system.
  • VS2013 Update 2 Support - New compiler offically supported for Update 2.
  • DLL exports - Improved support for DLL exported specializations.
  • Fix: Win SDK 7.x - Recode now compiles cleanly with the v110_xp toolchain on VS2012.
  • Fix: Address-of operators - Globals with custom unary operator& now Recode correctly.
  • Fix: Forced Includes - The cl.exe /FI option could fail with Recode enabled.

Replaced by

Released: 2014-06-11

  • Improved lambda support - Templates specialized with lambdas are more reliable.
  • Lib auxiliary obj files - Improved support for Havok code setup.
  • DLL handling improved - DLL exporting of classes now supported.
  • Fix: Handling of __int64 - Static members specialized to __int64 could fail.

Released: 2014-05-26

  • Fix: Specialized typedefs - Typedefs in namespaces could cause Recode failures.

Released: 2014-05-15

  • Fix: Compile crash - Relative PCH #include paths could cause a Recode crash.

Released: 2014-05-14

  • Inject statistics - Number of functions updated per module is now logged.
  • PCH validation - PCH include must be on include path, this is now validated.
  • Improved Docs - Expanded troubleshooting and build settings documentation.
  • Fix: Static locals - Adding new static locals could prevent later Recodes.
  • Fix: Thread locals - TLS variables declared in a PCH now Recode correctly.
  • Fix: Explicit instantiations - Permit duplicate explicit class instantiations.
  • Fix: DLL export - Macro declared __declspec(dllexport) variables are supported.
  • Fix: VS2013 support - MSBuild 12 now used (if available), fixing VS2013 issues.
  • Fix: Solution parsing - Improved support for custom generated sln files.

Released: 2014-05-02

  • Native x64 MSVC support - Recode is officially compatible with the native x64 compiler.
  • /bigobj support - The MSVC /bigobj option allows for a .obj with more sections.
  • LNK4075 diagnostics - Improved diagnostics in case a /GL compiled .obj is detected.
  • Fix: Improved error handling - Reduced risk of parse failures & improved error reporting.
  • Fix: Extern class specializations - Extern template static members now Recode correctly.

Released: 2014-04-28

  • CRT DLLs Unnecessary - Recode no longer needs the CRT DLLs to run.
  • Compiler Dependencies - New diagnostics if compiler DLL dependencies are missing.
  • /MT not supported - Compile time error added to catch this issue earlier.
  • RecodeLocalInstallDir added - New .recode property for custom build systems.
  • Fix: Stale PCH files - PCH files were not cleaned in some cases, breaking compilation.
  • Fix: VS2013 support - VS2013 Recoding could fail if VS2010 was not installed.
  • Fix: Solution Parsing - Parsing fixed to better deal with edited sln files.

Released: 2014-04-22

  • Improved link diagnostics - Unknown extern globals diagnosed to identify obj & lib files.
  • Improved compile diagnostics - Skipped files not under base path (or excluded) diagnosed.
  • Thread local arrays - Recode now supports thread local arrays.
  • Improved MSVC compatibility - Improved __FUNCTION__ and __FUNCSIG__ handling.
  • Fix: Patch linking - Only link libs to patches if the libs were not built with Recode.
  • Fix: Anon enums - Static template members parameterized with anon enums are unsupported. Error diagnostic added.
  • Fix: License validation - Improved license string validation for invalid inputs.

Released: 2014-04-14

  • Fix: Licensing issue - Updated recode.lic could fail to install the Recode license.

Released: 2014-03-17

  • Error/warning coloration - Errors and warning logs are now colorized to increase visibility.
  • New licensing system - Licensing system rewritten to improve reliability for large install bases.
  • Fix: Recode notifications bring VS topmost - Ensures Recode Protect dialogs are not hidden.
  • Fix: Improved UI - Toggling Recode enabled for a single project only requires a single click now.

Released: 2014-02-25

  • Online documentation - Preliminary Recode help is now available online.
  • UI Improvements - Recode dialogs updated to be clearer and more descriptive.
  • External license file - To avoid rebuilds caused by updating *.recode files, a separate “recode.lic” file is now used.
  • Fix: Thread local static members - TLS static members could cause Recode failures.
  • Fix: Size of struct calculations - x86 structure sizes could be incorrectly calculated.
  • Fix: Demunch for members specialization - Static member specializations could be incorrectly skipped during demunch.
  • Fix: Recode Configuration opens immediately - Large solutions would cause delays in opening Recode Configuration.

Released: 2014-02-11

  • VS2013 support - VS2013 is now fully supported by Recode.
  • Linker override - Incremental linking enabled and linker optimizations disabled if Recoding. No need to change manually.
  • Larger patches - Recode now support patches up to 6MB in size allowing you to Recode hundreds of files in one patch.
  • Fix: Array support - Global array support rewritten. Templated and incomplete global arrays now work reliably.
  • Fix: __pragma support - Globals declared with __pragma in macros now Recode correctly.
  • Fix: Single file compile - Right-click compile for individual files now supports Recode.
  • Fix: Function pointers - Globals using function pointers would sometimes cause errors under x86.
  • Fix: Template enum params - Globals using enums as template params now Recode correctly.
  • Fix: Unloaded projects - Unloaded/unavailable projects will now be skipped with a warning.
  • Fix: Local extern arrays - Extern arrays declared in functions now Recode correctly.
  • Fix: PCH struct layouts - Structs defined in pre-compiled headers now correctly use MSVC layout rules.
  • Fix: Paths with spaces - Recode now works correctly with file and project paths containing spaces.

Released: 2014-01-28

  • Auto-protect - Auto-protects key functions to allow SEH recovery (C++ exception have to be disabled).
  • Improved Demunch - Extensive improvements for munch/unity/uber file support.
  • Improved diagnostics - Reduced noisy log messages and made it easier to find compile errors.
  • Crash reporter - Recode now generates a crash dump file in case of a fatal error.
  • Fix: MSVC header lookup rules - Recode now fully implements MSVC header lookup rules.
  • Fix: Define and use variables - Support for “struct Foo {} g_defineAndUse;” style globals.
  • Fix: Globals without initializers - Globals without explicit initializers would fail to Recode.

Released: 2013-12-09

  • Per-module Recode - Reduce compile times by enabling Recode only on your active projects via Configure Recode...
  • Full Settings UI - All common Recode settings can now be configured via Configure Recode...
  • Patch DLL renaming - Recode patch DLL(s) renamed and hidden to avoid issues with plugin systems trying to load them.
  • Recode user settings renamed to .recode.user - Any old .urecode files may now be deleted.
  • VS2012 Update 4 - Update 4 is now offically supported by Recode.
  • New Recode logo - Icons and images have all been updated to use the new logo.
  • Fix: Config names with whitespace - Recode now works with configuration names containing whitespace.
  • Fix: Improved MSVC compatibility - Follows MSVC conversion logic for null-pointers.