64-bit versions of Windows operating systems can execute both 32-bit and 64-bit applications, but they cannot mix these types within a process. For example, you cannot load 32-bit DLLs into a 64-bit process, or vice versa. All executable components (EXE and DLL files) that are loaded into a process must match the binary type of the process. As much as possible, you should port in-process components for your 64-bit apps to 64-bit.
If you require a component that cannot be ported to 64-bit, you can use it only as a separate process and "thunk" to it with out-of-process calls. An example of such a component is VBA. Prior to VBA 7, Microsoft had no plans to build a 64-bit version of VBA. Therefore, an application that implemented VBA (such as AutoCAD 64-bit) could only access it as an out-of-process 32-bit component.