-TC x64 fails to launch an old installer

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
Flint
Power Member
Power Member
Posts: 3487
Joined: 2003-10-27, 09:25 UTC
Location: Antalya, Turkey
Contact:

-TC x64 fails to launch an old installer

Post by *Flint »

Here is the test file:
https://yadi.sk/d/etgToYlpRNmvv
(if interface is in Russian, for downloading click the white button with an arrow-down icon and text "Скачать" located below the larger green button, to the right from the file description)

Despite the fact that it's a 16-bit executable, it still can be "launched" in Windows 7 x64 because of application compatibility mechanism: when you try to start this SETUP.EXE file, Windows transparently launches a 32-bit InstallShield installer from Windows\SysWOW64 directory instead, and passes path to this 16-bit installer to it. So, the package can still be installed without actually running any 16-bit processes.

However, when you try to run this program from TC 8.51 x64, it shows the error message:

Code: Select all

Error executing program! (31)
Windows Explorer, TC 8.01 x32, TC 8.01 x64 and TC 8.51 x32 — all they are able to start this installer, but not TC 8.51 x64.

P.S. When started, the installer displays an error about missing SETUP.LID file — it doesn't matter here. The key factor is whether the installer was launched at all or not.
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
 
Using TC 10.52 / Win10 x64
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48021
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

This isn't a bug - 16-bit programs are not launched because most of them were crashing TC x64. This was added in TC 8.51 to avoid the crashes. TC cannot know that there are working 16-bit programs.

Here is the documentation of the change:
14.04.13 Fixed: Do not try to run 16-bit programs from 64-bit TC, they cause a segmentation fault in ShellExecuteEx (64)

There are no plans to change this, sorry.
Author of Total Commander
https://www.ghisler.com
User avatar
Flint
Power Member
Power Member
Posts: 3487
Joined: 2003-10-27, 09:25 UTC
Location: Antalya, Turkey
Contact:

Post by *Flint »

ghisler(Author)
OK, I see.
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
 
Using TC 10.52 / Win10 x64
User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW »

1)
ghisler(Author) wrote:TC cannot know that there are working 16-bit programs
Does that mean, that there are problems only when there are other 16-bit applications already running?

2) Maybe you could give an example of such a 16-bit program that crashes TC, to reproduce the problem?

3) It seems that there may be a possible workaround: 64-bit TC could launch some 32-bit program (for example Tcmadmin.exe), and this 32-bit program could launch the 16-bit program.

Regards
User avatar
Flint
Power Member
Power Member
Posts: 3487
Joined: 2003-10-27, 09:25 UTC
Location: Antalya, Turkey
Contact:

Post by *Flint »

MarcinW wrote:Does that mean, that there are problems only when there are other 16-bit applications already running?
In 64-bit Windows there cannot be any 16-bit applications running. They are not supported there. This specific 16-bit installer is not really launched, Windows substitutes its launch with starting an internal 32-bit installer via application compatibility mechanism, but it won't work for other, non-installer 16-bit programs, so TC cannot predict whether the program will start or not, without actual trying to start it (and in some cases trying to start a 16-bit program leads to a segfault). That's what Christian meant.

P.S. I didn't meet such a segfault myself, but I didn't try to launch many 16-bit programs, knowing they won't work anyway…
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
 
Using TC 10.52 / Win10 x64
User avatar
MarcinW
Power Member
Power Member
Posts: 852
Joined: 2012-01-23, 15:58 UTC
Location: Poland

Post by *MarcinW »

Flint, thanks for your explanation. I always thought that only DOS programs cannot be launched under Win64.
Post Reply