Open EgorKuzevanov opened 2 months ago
... For the time being, and if/until this is somehow addressed (?) by the maintainer, you must get rid of the custom DirectWrite implementation, i.e. lose all DLLs adjacent to chrome.exe
except for progwrp.dll
- then you'll fall back to GDI under XP SP1 (just like with the previous 124-r1
release), without getting the annoying prompt about missing api-ms-win-*.dll
s; unless someone can come up with XP-SP1-x86-compatible Win10uCRT runtime (the essential part inside MSVC++2015-2019 needed by DWrite.dll
to properly function under XP) ...
You can apply the following interim solution, which should avoid the dependency to the new MSVCPP2015 runtime entirely. https://github.com/IDA-RE-things/Chrome-xp-api-adapter/issues/20#issuecomment-2304823691 This works for me on 124r2, and this is how I do currently use it. I do it for different reasons than you, but it will solve our both problems.
I do hope that future versions of Supermium will not break this neat little trick again.
The intent is to eventually redirect all dwrite components towards msvcrt, with an intermediate (p_vcrt) layer to handle whatever msvcrt doesn't have.
sounds like a good idea to aim for minimizing external dependencies.
You should be able to fix this error by installing this:
That is the latest version of Microsoft Visual C++ 2015 Redistributable Package that runs on Windows XP. (From discussion #696)
@JoachimHenze wrote:
which should avoid the dependency to the new MSVCPP2015 runtime entirely.
... But in that way you won't have DirectWrite font rendering under Windows XP SP3; I know you personally prefer (the default under XP) GDI font rendering, but other XP SP3 users may prefer the advantages DW offers :wink: ...
As for OP under XP SP1, you simply proposed what I already did here, but directed the OP to use the alternate wrapper implementation by IDA-RE-things (which offers H/W (paint) accel under XP; unsure whether this feature works under just SP1, though) ... No issue with that myself, the more choice, the merrier :smile: ...
@trlkly wrote:
That is the latest version of Microsoft Visual C++ 2015 Redistributable Package that runs on Windows XP
... Right, but the OP is running XP SP1 x86 and according to his claim:
a library included in the Microsoft Visual C++ 2015 Redistributable Package (which in turn is incompatible with Windows XP SP1)
so it appears that VC_redist.x86.exe
file won't install under just XP SP1 ?
MS seem to agree here, as the minimum system requirements for MSVC++2015 demand SP3:
https://www.microsoft.com/en-us/download/details.aspx?id=48145
Supported Operating Systems
Windows 10, Windows 7 Service Pack 1, Windows 8, Windows 8.1, Windows Server 2003 Service Pack 2, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2, Windows Server 2012, Windows Vista Service Pack 2, Windows XP Service Pack 3
... For the time being, and if/until this is somehow addressed (?) by the maintainer, you must get rid of the custom DirectWrite implementation, i.e. lose all DLLs adjacent to
chrome.exe
except forprogwrp.dll
- then you'll fall back to GDI under XP SP1 (just like with the previous124-r1
release), without getting the annoying prompt about missingapi-ms-win-*.dll
s; unless someone can come up with XP-SP1-x86-compatible Win10uCRT runtime (the essential part inside MSVC++2015-2019 needed byDWrite.dll
to properly function under XP) ...
Something like this? https://github.com/Blaukovitch/API-MS-WIN_XP
@Vangelis66 Yeah, I missed the SP1 part. I presume they have a reason to not use SP3? If not, I would not only recommend installing that, but also subsequent updates.
Yeah, just removing the DLLs will remove the prompt, without affecting actual functionality. I did think it weird that the prompt is there. It should just fail to load silently, seeing as the DLL that loads it (the DWrite DLL) is itself optional.
Fallback to GDI if not all components are present for Directwrite should be silent. Sure, having it not depend on MVC 2015+ would be better. But graceful fallback is the best interim solution.
Something like this? Blaukovitch/API-MS-WIN_XP
IIUC, this project aims to backport various WinAPIs present on Win11/10/8.1 down to Win7/(Vista?/)XP; it's probably how Blaukovitch makes Cr127 work on Win7SP1 :stuck_out_tongue_winking_eye: ; I can't tell whether this project aims/accomplishes support down to XP SP1, which is what OP uses in his VM...
The fact is MS already provide an implementation of those stub DLLs that target XP (so no other APIs from later Windows versions need to be backported), the thing is, though, that vc_redist.x86.exe
v14.x requires XP SP3 at minimum to install; whether this is an artificial block on lower SP levels (XP SP0/1/2) is hard to tell (and practically impossible for me to check here); if one feels adventurous, one can extract the Win10UCRT DLLs and probe them with DependencyWalker under XP SP1 - if missing functions are found, then these would have to be replaced/stubbed accordingly :wink: ; but this is above my pay grade :smile: ...
For what it's worth, I also get the exact same error message on XP SP3 as well as get it in Vista SP2. The browser still works fine after clicking ok to dismiss the popup.
as well as get it in Vista SP2.
WFM :wink: ; for Vista SP2, look here (you need install KB2999226) ...
The browser still works fine after
Not really; "fine" in that case (v124-r2
) means:
@Vangelis66 It works just as well as previous versions.
The point is, usually such error messages mean the app won't run at all. It says "the application has failed to start." It's a misleading message. Ideally, it would not show, and just fall back gracefully.
Ah! Well it seems "fine" for the little browsing I do on that machine. But I installed the Visual C++ mentioned above for both the XP and Vista installs and the error message no longer comes up on either.
On Windows XP SP1 (released September 9, 2002), every time I run unpacked Supermium 124.0.6367.245 R2 I get an error related to a library included in the Microsoft Visual C++ 2015 Redistributable Package (which in turn is incompatible with Windows XP SP1): At the same time, the Supermium browser itself works properly and its official website https://win32subsystem.live/supermium still claims to support Windows XP SP1. As a result, I have to click the OK button every time.