While I don't trust everything that I find on CodeProject: 
http://www.codeproject.com/KB/system/64BitOSAndPortingIssues.aspx
From which I quote: 
=========================================================================
Why 64-bit apps cannot load 32-bit Dll's & 32-bit apps load 64-bit Dll's

I mentioned earlier that 32-bit processes can't load 64-bit DLLs and 64-bit 
processes can't load 32-bit DLLs. You might be wondering why. By default, 
64-bit applications can use 8 TB of user mode address space. You have the 
option to specify that all memory below 2 GB be allocated to the application. 
Because 32-bit DLL can't address memory space above 2GB, the thunk layer would 
have to copy all data into the low 2GB of the 64-bit application. Obviously, 
this won't work if the 64-bit application tries to pass a pointer to data that 
is larger than 2GB.

Also 32-bit DLLs use x86 style exception handling and 4K pages. On an IA-64 
processor, the native page size is 8K and the WOW64 emulator is responsible for 
simulating 4K pages. Because on an x86 machine exceptions do not "unwind" from 
user mode to kernel mode and back, WOW64 implements x86-style exception without 
switching from x86 code to IA-64 and back.

Finally, another reason why 64-bit and 32-bit processes can't load each other's 
DLLs is that system DLLs (kernel32.dll, user32.dll, and gdi32.dll) expect only 
one instance per process, 32-bit or 64-bit. If a process contained more than 
one instance of, say user32.dll, Win32k.sys will not be able to distinguish 
between them and wouldn't know which one to call.

So a 64-bit application must have all the Dll that are 64-bit.
=========================================================================
It's not so much J's fault but Windows'.
What some programs do is to run a 32 bit process which acts as a bridge. The 
aspects of the bridging are completely custom, though.

> -----Original Message-----
> From: [email protected] [mailto:programming-
> [email protected]] On Behalf Of Martin Pelletier
> Sent: Wednesday, August 04, 2010 4:15 PM
> To: Programming forum
> Subject: Re: [Jprogramming] SQLite3 and J602a 64bits
> 
> My attempt: no
> 'Data\sqlite' package: ???
> 
> Do you mean that J6 64 bit cannot call a 32 bit dll? Really?
> 
> Martin Pelletier
> 
> On 2010-08-04 10:08, bill lam wrote:
> > Is that dll also 64-bit?
> >
> > Срд, 04 Авг 2010, Martin Pelletier писал(а):
> >
> >
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to