Fog Creek Software
Discussion Board

Welcome! and rules

Joel on Software

Does new Win 64 bit Pro have 64 bit CLR yet

I've been reading all the news blurbs.

But have not found where it says that .Net CLR has been released witht he new 64 bit OS.

If so does anyone know of any speed advantages of running 64 bit when using large amounts ~ 2GB of data in .Net programs.

Also will we still have to wait on the new version of Visual Studio before we can compile .Net programs with more than 2 GB of data area?

Gary A. Miller
Monday, May 2, 2005

I just installed Win XP x64 on my system at home and there is no .NET on it at all.  The 64-bit CLR is part of .NET 2.0 and you can get the beta versions from MS, but thats about it.

Steve Maier
Monday, May 2, 2005

There is no such thing as "compiling for 64-bit .NET". Presuming the application was written properly (i.e., with ignorance of the exact size of pointers), it will run unchanged.

Brad Wilson [MSFT]
Monday, May 2, 2005

`There is no such thing as "compiling for 64-bit .NET"'

I argued the same thing on Slashdot, and was slapped down. Turns out that Visual Studio, and the normal .NET SDK compilers, are tagging assemblies with a 32-bit CPU flag. They do this because COM proxies, and many depended upon components, are 32-bits. In this case these assemblies will run in the 32-bit thunking layer of .NET.

Dennis Forbes
Tuesday, May 3, 2005

That isn't entirely true.

By default it will run on a x64 as a 64-bit application and as a 32-bit application on x86 processors.

What they are talking about is the issue that applications cannot reference multiple bit levels. In other words, if you use a 32-bit COM DLL in your .NET application then you need to compile it specifically as 32-bit.

If on the other hand you are entirely managed code - or you have a 64-bit version of any non-managed dll - then you can run on anycpu and have it run at the same bit level as the processor.

Tuesday, May 3, 2005


Right, ideally that is how it would work. But in practical reality, Visual Studio, the one we have today, is marking every assembly as 32-bit. Whidbey (VS 2005) will be the first that marks assemblies platform neutral.

So presuming that you don't access anything 32-bit, your current apps will still need changes (even if it's just the changing of a flag - not sure if this could be done externally for signed builds) to run in 64-bit mode.

Dennis Forbes
Tuesday, May 3, 2005

Changing the flags externally is pretty easy. You can use the corflags.exe application that comes with the 2.0 SDK for the same. You can thus run your v1.1 applications as native 64-bit processes.

Jeswin P
Saturday, June 11, 2005

*  Recent Topics

*  Fog Creek Home