[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: XP64 Manifest Achitecture problems
- From: Danilo Roascio <d4nilo@...>
- Date: Tue, 10 Mar 2009 11:33:37 +0100
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