/env switch
The /env switch selects the environment in which the application runs.
midl /env { win32 | ia64 | amd64 | win64 }
-
win32
-
Directs the MIDL compiler to generate stub files, or a type library file, for a 32-bit environment.
-
ia64
-
Directs the MIDL compiler to generate stub files, or a type library file, for a Intel Architecture 64-bit (IA64) environment.
-
amd64
-
Directs the MIDL compiler to generate stub files, or a type library file, for an Advanced Micro Devices 64-bit (AMD64) environment.
-
win64
-
Same behavior as ia64.
The /env switch primarily affects the packing level used for structures in that environment. Be sure you specify the same packing-level setting for both the MIDL compiler and the C compiler.
The /env switch determines the packing level and other settings as follows:
- When you specify win32, generated stubs use C-compiler packing-level 8 for all types involved in remote operations. The int data types are both 32 bits. Pointers are 32 bits.
- When you specify ia64 or amd64, the MIDL compiler runs in a cross-compiler mode for the indicated (Intel or AMD) 64-bit platform. The generated stubs use C-compiler packing-level 8 for all types involved in remote operations. The long and int data types are 32 bits. Pointers are 64 bits.
The /align, /pack, and /Zp switches take precedence over the /env settings.
For more information on 64 bit support for MIDL and RPC see Designing 64-bit-Compatible Interfaces.
midl /env win32 filename.idl
midl /env ia64 filename.idl
midl /env amd64 filename.idl
midl /env win64 filename.idl