Changes between Version 2 and Version 3 of Ticket #5527


Ignore:
Timestamp:
Jul 23, 2019, 10:34:41 PM (5 years ago)
Author:
historic_bruno
Comment:

Instant error on startup when using app-local deployment on XP:

.  0  Id: 78c.50c Suspend: 1 Teb: 7ffdd000 Unfrozen
ChildEBP RetAddr  
0012fe40 003abb79 kernel32!RaiseException+0x53
0012fe9c 003ab6a9 MSVCP140!__delayLoadHelper2(struct ImgDelayDescr * pidd = 0x003b4070, <function> ** ppfnIATEntry = 0x003d702c)+0x16c [f:\dd\vctools\delayimp\delayhlp.cpp @ 323]
0012fedc 0038c45f MSVCP140!_tailMerge_CONCRT140_dll+0xd
*** WARNING: Unable to verify checksum for pyrogenesis.exe
0012fee8 004eb99e MSVCP140!_Mtx_init_in_situ(struct _Mtx_internal_imp_t * mtx = 0x007c0d20, int type = 0n2)+0xf [f:\dd\vctools\crt\crtw32\stdcpp\thr\mutex.c @ 44]
0012ff18 004018d8 pyrogenesis!CLogger::CLogger(class std::basic_ostream<char,std::char_traits<char> > * mainLog = 0x007c0c98, class std::basic_ostream<char,std::char_traits<char> > * interestingLog = 0x007c0c98, bool takeOwnership = false, bool useDebugPrintf = true)+0x8e [e:\jenkins\workspace\vs2015_autobuild\source\ps\clogger.cpp @ 83]
0012ff2c 009381cd pyrogenesis!`dynamic initializer for 'nullLogger''(void)+0x18 [e:\jenkins\workspace\vs2015_autobuild\source\ps\clogger.cpp @ 49]
0012ff48 006b4524 ucrtbase!_initterm+0x6d
0012ff8c 00664a3f pyrogenesis!__scrt_common_main_seh(void)+0x7b [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 221]
0012ffc0 7c816037 pyrogenesis!CallStartupWithinTryBlock(void)+0x3f [e:\jenkins\workspace\vs2015_autobuild\source\lib\sysdep\os\win\wseh.cpp @ 365]
0012fff0 00000000 kernel32!BaseProcessStart+0x23

Installing the vcredist _does_ work. The game actually does run nicely on XP, and I was able to connect to the lobby after adding TLS 1.1/1.2 support via a Windows update.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5527 – Description

    v2 v3  
    11As explained [https://devblogs.microsoft.com/cppblog/introducing-the-universal-crt/ here], VS 2015 introduces the Universal CRT which is a component of Windows 10. Earlier versions of Windows must install update [https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows KB2999226], or the VCRedist package for VC++ 2015 (you already have it if you installed VS 2015). Windows XP users won't get the Windows update, so they must install the VCRedist package.
    22
    3 Another option is "app-local deployment", where we copy all of the UCRT DLLs from the Windows 10 SDK (although I tried this and it failed on XP; copying them from the vcredist package worked), alongside the rest of the game's binaries. There are 41 of them, but it's < 2 MB total:
     3Another option is "app-local deployment", where we copy all of the UCRT DLLs from the Windows 10 SDK (although I tried this and it failed on XP; ~~copying them from the vcredist package worked~~), alongside the rest of the game's binaries. There are 41 of them, but it's < 2 MB total:
    44{{{
    55C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86