Groups | Blog | Home
all groups > dotnet clr > october 2005 >

dotnet clr : WOW64


Kevin Ortman
10/23/2005 7:26:04 PM
How does the 64Bit CLR handle .NET Framework 1.1 assemblies in the following
scenario?

App.exe <--- .NET Framework 2.0 100% Managed
MyLib.dll <--- .NET Framework 1.1 100% Managed
App.exe has a dependecy on MyLib.dll.

Does the whole application execute in 64-bit native?
Does the whole application ( or only the 1.1 assemblies ) execute in WOW64?

Also, is there a way to verify how if the code is running in 64-Bit native
non-programatically? ( other than the task manager )

Thanks,
Kevin Ortman
Phil Wilson
10/24/2005 8:37:21 AM
It's my understanding that 2.0 assemblies running 64-bit mode will not link
to 1.1 assemblies, basically because the loader can't assume that the 1.1
assembly will work correctly in 64-bit mode, so it errs on the side of
safety. I think this is still valid:
http://blogs.msdn.com/junfeng/archive/2004/08/11/212555.aspx
--
Phil Wilson
[Microsoft MVP-Windows Installer]

[quoted text, click to view]

Kevin Ortman
10/24/2005 4:52:01 PM
Thanks Phil,

I'll try testing the scenario and see what fuslogvw has to show me.

Regards,
Kevin

[quoted text, click to view]
Josh Williams
10/26/2005 11:35:42 AM
You should read my blog entry here:

http://blogs.msdn.com/joshwil/archive/2004/10/15/243019.aspx

1.1 dlls will be loadable by 2.0 executables. If they do everything
right then they will work just fine. If they do things wrong (incorrect
P/Invoke signatures, call out to native DLLs that only have 32-bit
versions, etc) they will blow up. This is no different than with 2.0
dlls, except with 2.0 dlls you have the explicit ability to mark the
DLL as not being loadable by a 64-bit process so that you get a
BadImageFormatException when someone tries to do it instead of some
obscure error when something goes wrong for some wierd reason.

A number of my other blog entries deal with these issues as well.

-josh
http://blogs.msdn.com/joshwil/
AddThis Social Bookmark Button