Due to SPAM attacks, new members must be approved before posting. Please email email@example.com when registering and your account will be approved.
Started by kschmid, August 31, 2009, 08:50:04 AM
Quote64 bit DLLs cannot be called from 32 bit applications.This means we would be forced to port the entire piece of software to a 64 bit development platform to go forward in that mannerhttp://msdn.microsoft.com/en-us/magazine/cc300794.aspx While running a fully 64-bit Windows system sounds great, the reality is that you'll very likely need to run Win32 code for a while. Towards that end, x64 versions of Windows include the WOW64 subsystem that lets Win32 and Win64 processes run side-by-side on the same system. However, loading your 32-bit DLL into a 64-bit process, or vice versa, isn't supported. (It's a good thing, trust me.) And you can finally kiss good bye to 16-bit legacy code!In x64 versions of Windows, a process that starts from a 64-bit executable such as Explorer.exe can only load Win64 DLLs, while a process started from a 32-bit executable can only load Win32 DLLs. When a Win32 process makes a call to kernel modeto read a file, for instancethe WOW64 code intercepts the call silently and invokes the correct x64 equivalent code in its place.Of course, processes of different lineages (32-bit versus 64-bit) need to be able to communicate with each other. Luckily, all the usual interprocess communication mechanisms that you know and love in Win32 also work in Win64, including shared memory, named pipes, and named synchronization objects.