Updated README file.

This commit is contained in:
LoRd_MuldeR 2023-04-08 11:33:32 +02:00
parent a6f499ce50
commit 823ec95fce

View File

@ -5,7 +5,7 @@ CompatLib – compatibility library for re-establishing Windows XP (SP-3) su
C/C++ executables built with VS2019 (Toolset v142) or VS2022 (Toolset v143) do **not** normally run on Windows XP. That is because the executables created by VS2019 (Toolset v142) or VS2022 (Toolset v143) depend on certain functions in the `KERNEL32.DLL` system library that simply did **not** exist in Windows XP yet. Consequently, on the Windows XP system, those executable fail to start with an error message about the missing entry point! C/C++ executables built with VS2019 (Toolset v142) or VS2022 (Toolset v143) do **not** normally run on Windows XP. That is because the executables created by VS2019 (Toolset v142) or VS2022 (Toolset v143) depend on certain functions in the `KERNEL32.DLL` system library that simply did **not** exist in Windows XP yet. Consequently, on the Windows XP system, those executable fail to start with an error message about the missing entry point!
CompatLib provides a workaround for the problem, by eliminating the "problematic" `KERNEL32.DLL` dependencies from the executable, so that the executable will again be able to run on Windows XP. This is achieved by substituting the call to the original (missing) function in `KERNEL32.DLL` with a small "shim" function. The "shim" function is linked directly into the executable file. Also, the "shim" function tries to emulate the call, by forwarding the call to an adequate function in `KERNEL32.DLL` that *does* exist on Windows XP. There currently are *two* such function dependencies that must be substituted by CompatLib – `InitializeCriticalSectionEx()` and `LCMapStringEx()`. CompatLib provides a workaround for the problem, by eliminating the "problematic" `KERNEL32.DLL` dependencies from the executable, so that the executable will again be able to run on Windows XP. This is achieved by substituting the call to the original (missing) function in `KERNEL32.DLL` with a small "shim" function. The "shim" function is linked directly into the executable file; it tries to emulate the call, by forwarding the call to an adequate function in `KERNEL32.DLL` that *does* exist on Windows XP. Dependencies that must be substituted by CompatLib include `InitializeCriticalSectionEx()`, `LCMapStringEx()`, `CompareStringEx()` and `GetLocaleInfoEx()`.
### Remarks ### Remarks
@ -14,7 +14,7 @@ CompatLib provides a workaround for the problem, by eliminating the "problematic
* Running x64 (64-Bit) executables is possible, but requires the *Windows XP Professional x64 Edition* * Running x64 (64-Bit) executables is possible, but requires the *Windows XP Professional x64 Edition*
* If your *application code* uses Win32 API functions unavailable in Windows XP, then CompatLib will **not** help! * If your *application code* uses other Win32 API functions unavailable in Windows XP, then CompatLib will **not** help!
CompatLib **only** removes the "problematic" dependencies induced by Microsoft's C/C++ Runtime. CompatLib **only** removes the "problematic" dependencies induced by Microsoft's C/C++ Runtime.