lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


  That's correct. The 32 bits binaries are NOT working in Windows XP x64,
although they work on Vista x64.

  But I tested on a new XP64 system without any updates because it is
offline. Maybe downloading the updates from Windows Update would fix the
problem.

  I tried also to use external manifests but they do not work. The manifest
can be changed for the current DLL, but if anyone has another solution
without changing/recompiling the DLL I'll appreciate.

Best,
scuri

> -----Original Message-----
> From: lua-bounces@bazar2.conectiva.com.br [mailto:lua-
> bounces@bazar2.conectiva.com.br] On Behalf Of Danilo Roascio
> Sent: terça-feira, 10 de março de 2009 07:34
> To: lua@bazar2.conectiva.com.br
> Subject: XP64 Manifest Achitecture problems
> 
> Hello everyone.
> 
> This is to point out some problems I found with Lua binaries on
> Windows XP x64. I'm new to this mailing list and, actually, I'm not a
> Lua user. But I had to fix this problem because otherwise I couldn't
> run the wonderful Electric Sheep (electricsheep.org) on this machine.
> ;)
> 
> Anyway. I've found that 32-bit binaries from both
> http://luabinaries.luaforge.net/download.html and Lua for Windows do
> not work on XP 64-bit (with errors like the XP ones in
> http://blogs.msdn.com/junfeng/archive/2006/04/14/576314.aspx ), while
> 64-bit binaries from http://luabinaries.luaforge.net/download.html
> work correctly. This shouldn't happen since XP64 has complete
> retro-compatibility with 32-bit apps (the only limitation is that you
> can't mix 32-bits libraries on a 64-bit processes and vice versa).
> 
> This problem arises from the manifest of the executables set in
> lua_dllx.manifest:
> 
> --- snip ---
>         <assemblyIdentity
>             type="win32"
>             name="Microsoft.VC80.CRT"
>             version="8.0.50727.762"
>             processorArchitecture="*"
>             publicKeyToken="1fc8b3b9a1e18e3b"
>         />
> --- snip ---
> 
> Leaving processorArchitecture set to "*" works for 64-bits executables
> and Windows (or, better, Side-by-Side) will load the correct VC CRT
> libraries. On 32-bit executables instead, SxS will just fail in
> loading the libraries saying that they can't be found even if their
> 32-bit version is correctly installed. Setting
> processorArchitecture="x86" will solve this problem for 32-bit
> executables that will run smoothly on XP64. That can be left set to
> "*" (or to "Amd64") for 64-bit ones.
> 
> The compiler (I guess) also adds a Windows Common Controls dependency
> with processorArchitecture="*", but that works regardless of
> executable type (don't ask me why).
> 
> However, you may want to do additional tests on Vista 64, just to
> check how the "*" works there.
> 
> Regards.
> Danilo