Accessing an IA-32 DLL from a native Itanium® Architecture Process

By Clayne Robison, Intel Software Solutions Group, Server ISV Enabling
Porting to Itanium architecture: Avoiding dependencies on 3rd-party IA32 libraries by using COM or other out-of-process marshalling mechanisms.


Porting an application to the Intel Itanium architecture has many benefits, including the ability to take advantage of 64-bit address space and the architecture's explicit parallelism. However, complex applications often depend on components developed 3rd-party software sources, a dependency that puts the porting project at risk.

An analysis of these dependencies may lead to the question: "Is it possible to use an IA32 DLL from within a native Itanium architecture process?" Unfortunately, none of the operating systems currently ported to the Intel Itanium architecture allow this. However, IA32 libraries can be accessed from native Itanium architecture processes provided the IA32 libraries are loaded into a separate process space, and some marshaling mechanism is in place.

This source code demonstrates how an IA32 DLL can be used by a native Itanium architecture process using COM.

Target Audience

Enterprise application developers

Sample Category:

Operational Example Code. A complete Microsoft Visual Studio* workspace with three projects.

Implementation Language:


Target Hardware & Software Platforms

Hardware Systems: Itanium Architecture
Operating Systems: Windows*, NET 64.
Compilers: Microsoft Visual C++ 6.0 SP5 with Microsoft Platform SDK (November 2001)

Additional Information

The project includes instructions on how to build all binaries on a Win32 system using Microsoft Visual C++ 6.0 (SP5) with the November 2001 Platform SDK. Once all binaries are built, they can be run on a Win64 system. All binaries can also be run on a Win32 system (with the exception of the native Itanium architecture test application.)

Download Code Sample

Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.