Changes between Initial Version and Version 3 of Ticket #1901

03/24/11 19:53:42 (11 years ago)


  • Ticket #1901

    • Property Summary changed from Compiled 32bit scripts not working in system32 path on 64bit OS? to Compiled 32bit scripts not working in system32 path on 64bit OS
  • Ticket #1901 – Description

    initial v3  
    1 Hi,
     1''Heavily re-written by Valik'':
    3 did not find anything about this issue in the tracker:
     332-bit scripts do not run from system32 on 64-bit Windows.  This is because AutoIt has redirection enabled so the system calls to read the script from the file are sent to SysWOW64 which does not contain the file.  There are two solutions:
     4 1. Temporarily turn off redirection at startup so AutoIt sees real paths (I assume this is possible, I'm a bit fuzzy on the API).  Turn on redirection once the script is loaded but before user code is executed.
     5 2. Load the script directly from memory.  This is the better solution but should be done as part of a larger change to how scripts are loaded.  Specifically a byte-code compiled form of script should be loaded by Windows with the rest of the binary where it can then be executed directly from memory.  Scripts probably need stored as a resource for this to work.  This makes fixing this bug dependent on a change that has no current plans.
     7Finally, this bug should also affect FileInstall().  The first solution may need applied to FileInstall() (Perhaps via an option).  The second solution is not viable for FileInstall() because we don't want to load potentially massive files in memory at process start.
    7 -> Using a 64bit binary is not an option. Do you think it is possible to fix or, if not, it is possible not to pop up the error message interactively? For console programs it would be fine to use StdErr for such messages.
    9 Thanks in advance,
    11 Highguy
     9[ Link] to the original topic.