Modificador /Oi

Los modificadores /Oi y /Oic dirigen al compilador MIDL para usar un método de serialización totalmente interpretado. El modificador /Oicf proporciona mejoras de rendimiento adicionales.

midl /{Oi | Oic | Oif | Oicf}

Opciones de modificador

Oi

Especifica el método totalmente interpretado para serializar código auxiliar pasado entre el cliente y el servidor.

Nota

Este modificador está obsoleto. Se recomienda usar el modificador /Oicf en su lugar.

 

Oci

Especifica el método proxy sin código de serialización que proporciona todas las características de /Oi y también reduce aún más el tamaño del código auxiliar del cliente para las interfaces de objeto.

Nota

Este modificador está obsoleto. Se recomienda usar el modificador /Oicf en su lugar.

 

Oif o Oicf

Especifica el método proxy sin código de serialización que incluye todas las características proporcionadas por /Oi y /Oic , pero usa un nuevo intérprete (cadenas de formato rápido) que proporciona un mejor rendimiento que /Oi o /Oic. Este modificador incluye mejoras recientes de RPC y se recomienda para escenarios de RPC modernos.

Comentarios

Tenga en cuenta las restricciones relacionadas con las plataformas auxiliares.

El compilador MIDL 3.0 proporciona dos métodos para serializar código: interpretado completamente ( /Oi, /Oic y /Oicf) y en modo mixto ( /Os). A partir de MIDL versión 6.0.359, el compilador MIDL genera /Oicf /robust stubs de forma predeterminada. Algunas características de lenguaje no se admiten en algunos modos. En este caso, el compilador cambia automáticamente al modo adecuado y emite una advertencia.

Si el rendimiento es un problema, el método de modo mixto ( /Os) puede ser el mejor enfoque. En este modo, el compilador elige serializar algunos parámetros insertados en los códigos auxiliares generados. Aunque esto da como resultado un tamaño de código auxiliar mayor, ofrece un mayor rendimiento.

El método totalmente interpretado serializa los datos completamente sin conexión. Esto reduce considerablemente el tamaño del código auxiliar, pero reduce el rendimiento. Además, con el método totalmente interpretado, hay un límite de 16 parámetros para cada procedimiento. Cualquier procedimiento que contenga más de 16 parámetros se procesará automáticamente en modo /Os . Entre los modos interpretados, /Oicf ofrece el mejor rendimiento y /Oi ofrece la mejor compatibilidad con versiones anteriores.

Es posible que quiera usar la opción /Oif si la aplicación usa características MIDL que se introdujeron con MIDL 3.0, como los atributos [wire_marshal] y [user_marshal]. Si la aplicación usa canalizaciones , debe usar la opción /Oif ; Si especifica otro modo, el compilador MIDL cambiará a /Oif.

Para ajustar la forma en que se serializa el código auxiliar, Microsoft RPC proporciona un atributo ACF [optimize]. Este atributo se usa como atributo de interfaz o atributo de operación para seleccionar el modo de serialización para interfaces individuales o para operaciones individuales.

Convenciones de llamada

Los códigos auxiliares generados por el compilador MIDL en el método interpretado mediante los modificadores /Oi, /Oic o /Oif deben compilarse como stdcall o un procedimiento cdecl durante la compilación de C. Una convención de llamada PASCAL o Fastcall no funcionará. Además, el código auxiliar del servidor debe compilarse como stdcall.

Ejemplos

midl /Oi filename.idl

midl /Oic filename.idl

midl /Oif filename.idl

Consulte también

/Robusto

/no_robust

Sintaxis general de la línea de comandos de MIDL

/Os

Optimizar

/no_format_opt