Showing posts with label Windows. Show all posts
Showing posts with label Windows. Show all posts

28 February 2007

Win64: slow progress

I was looking through an XML library this week. It's one that compiles on various UNIX platforms, and Mac OS X and Windows. Primarily it's been built for Windows 32-bit, but it has been built for 64-bit UNIXs so I thought that the code would be code and ready for Windows 64-bit.

I was a little surprised to find that it was not anywhere near ready. I think the authors had assumed that the UNIX LP64 programming model is the same as the Windows 64-bit LLP64 programming model.

Variable sizes in 32/64-bit modes :
          32bit   LP64    LLP64
int 4 4 4
long 4 8 4
void * 4 8 8
HANDLE 4 8 8

Maybe it's the fact that in LLP64, the size of a long is different from LP64 that is confusing some development, but the compiler does help. With VS2005, if you try to put a pointer into a long it flags an error.
Another issue is HANDLE, which I have mentioned before.
I found hundreds of such errors when building this XML library. I think it will take a while for Windows developers of native code to catch up to VS2005 and then to catch up to 64-bit.

08 February 2007

Article: Moving to Windows Vista x64

CodeProject: Moving to Windows Vista x64

A very interesting & technically detailed article about 64-bit programming on Vista x64.

27 July 2006

Win64: Compiling ICU 3.4.1

I managed to build ICU version 3.4.1 on 64-bit Windows without too much trouble.
I used Visual Studio.NET 2005 and Windows XP Pro 64-bit and the command prompt :-)

Note: Remember to do a custom install of VS2005 otherwise you do not get the 64-bit compilers & tools installed.

To build ICU for Win64, just unzip the downloaded ICU source code.
Load each .sln (Solution File) into VS2005
You'll be prompted to upgrade it, so upgrade each one to VS2005 format.
Once it's upgraded, activate the Configuration Manager.
In the "Active solution platform:" select from the drop down menu.
In the "New Solution Platform" dialog, choose x64 from the list.
Then save & close the solution. Repeat for all .sln files.

To build it all previously you might have done it from the GUI or cmdline as :

devenv .\source\allinone\allinone.sln /build "Release" or
devenv .\source\allinone\allinone.sln /build "Release|Win32"

but now you can do this :
 devenv .\source\allinone\allinone.sln /build "Release|x64"

to build a 64-bit Windows version.

Links:

ICU downloads