Incompatibility of 32-bit and 64-bit Modules

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. Microsoft has not ported VBA to 64 bits. Therefore, an application that implements VBA (such as AutoCAD) can only access it in the 64-bit port as an out-of-process 32-bit component.