From: Zig on
On Thu, 11 Feb 2010 20:49:48 -0500, Roedy Green
<see_website(a)mindprod.com.invalid> wrote:

> One puzzle, what sort of naming convention do you use to keep track of
> the 32 and 64-bit version of a DLL? I would think you need to create
> a new extension for 64-bit DLLs, e.g. *.DLL64 for loadLibrary to
> automatically select the correct version.

I favor keeping the DLLs the same name, and putting them in different
directories (eg: lib32 or lib64). For me, this keeps inter-DLL
dependencies easier to manage. Eg, if Bar.DLL depends on Foo.DLL, then
trying to rename the DLLs based on architecture makes the build process
complicated to setup.

For conventional java, that means you need to get the java.library.path
right on startup. If you are using OSGi, then you just create 32 & 64 bit
fragment projects, and the OSGi classloader will take care of making sure
LoadLibrary calls check the right directory.

> What does Microsoft do?

The short answer is WOW64:
http://msdn.microsoft.com/en-us/library/aa384249(VS.85).aspx
Take a look at the "File System Redirector" and the "Registry Redirector"

> Is there only one flavour of 64-bit windows app, or are their
> Intel/AMD subflavours?

64 bit is mostly x86-64 these days, but IA-64 is out there. Sun's JVM
added IA-64 support as one of the minor releases for Java 6, so Java
support for it is much more recent than for x86-64.

Hope this helps!

-Zig